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 Server不实现null
安全运算符,与其他数据库不同,例如Postgres(支持标准的IS DISTINCT FROM
运算符)或MySQL(具有扩展名<=>
的MySQL)。
因此,您基本上受制于以下结构:
(value1 = value2) or (value1 is null and value2 is null)