Mar*_*lot 2 sql sql-server where-clause sql-server-2014 sql-null
SQL Server 是否有与 Ansi SQL 运算符等效的运算符:IS DISTINCT FROM/IS NOT DISTINCT FROM?
我知道我可以替换:
value1 is not distinct from value2
Run Code Online (Sandbox Code Playgroud)
和 :
(value1 = value2) or (value1 is null and value2 is null)
Run Code Online (Sandbox Code Playgroud)
或者 :
coalesce(value1, -1) = coalesce(value2, -1)
Run Code Online (Sandbox Code Playgroud)
但是这些选项会阻止引擎使用索引,那么SQL Server是否有特定的运算符来检查这种比较?
谢谢。
不。
null不幸的是,与其他数据库不同,例如 Postgres(支持标准IS DISTINCT FROM运算符)或 MySQL(具有名为 的扩展运算符), SQL Server 没有实现-safe 运算符<=>。
所以你基本上坚持以下结构:
(value1 = value2) or (value1 is null and value2 is null)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |