1

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

我知道我可以替换:

value1 is not distinct from value2

和 :

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

或者 :

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

但是这些选项会阻止引擎使用索引,那么 SQL Server 是否有特定的运算符来检查这种比较?

谢谢你。

4

1 回答 1

4

不。

不幸的是,SQL Server 没有实现null-safe 运算符,这与 Postgres(支持标准IS DISTINCT FROM运算符)或 MySQL(具有名为 的扩展运算符)等其他数据库不同<=>

所以你基本上坚持以下结构:

(value1 = value2) or (value1 is null and value2 is null)
于 2020-02-25T14:05:49.430 回答