如何在SQL Server中评估“ value1不会与value2不同?”

问题描述 投票:0回答:1

SQL Server是否具有与Ansi SQL等效的运算符:是DISTINCT FROM /是不是DISTINCT FROM?

我知道我可以替换:

value1 is not distinct from value2

with:

(value1 = value2) or (value1 is null and value2 is null)

或:

coalesce(value1, -1) = coalesce(value2, -1)

但是这些选项将阻止引擎使用索引,因此SQL Server是否具有特定的运算符来检查此比较?。

谢谢。

sql sql-server tsql null sql-server-2014
1个回答
4
投票

没有

[不幸的是,SQL Server不实现null安全运算符,与其他数据库不同,例如Postgres(支持标准的IS DISTINCT FROM运算符)或MySQL(具有扩展名<=>的MySQL)。

因此,您基本上受制于以下结构:

(value1 = value2) or (value1 is null and value2 is null)
© www.soinside.com 2019 - 2024. All rights reserved.