SQL Server 2008R2 中的重写 IS DISTINCT FROM 和 IS NOT DISTINCT FROM 谓词
在 SQL Server 2008R2 中,标准 IS DISTINCT FROM 和 IS不支持 NOT DISTINCT FROM 运算符。这给需要比较值并获得 True 或 False 而不是默认的 Unknown 的明确结果的用户带来了问题。
重写替代方案
模拟 IS DISTINCT FROM 和 IS NOT DISTINCT FROM 谓词,以下表达式可以是使用:
((a <> b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))
(NOT (a <> b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))
这些表达式有效地确定值是否不相等或其中一个值是否为空。如果是,则返回结果为True;
避免常见陷阱
重要的是要注意以下表达式不正确重写 IS DISTINCT FROM:
FALSE OR NULL
在 SQL Server 中,FALSE OR NULL 的计算结果为未知,这不是想要的结果。因此,使用上面提供的表达式进行准确的重写至关重要。
结论
通过利用这些重写的表达式,SQL Server 2008R2 用户可以实现与 SQL Server 2008R2 相同的功能IS DISTINCT FROM 和 IS NOT DISTINCT FROM,确保比较始终返回明确的结果。
以上是如何在 SQL Server 2008R2 中模拟 IS DISTINCT FROM 和 IS NOT DISTINCT FROM?的详细内容。更多信息请关注PHP中文网其他相关文章!