模拟与 SQL Server 2008 R2 中的模拟不同且不同
SQL Server 2008 R2 缺乏对 IS DISTINCT FROM
和 IS NOT DISTINCT FROM
的直接支持。 但是,我们可以使用替代 SQL 表达式来实现相同的功能。
IS DISTINCT FROM
返回 TRUE。 如果操作数相等或者两个操作数均为 NULL,IS NOT DISTINCT FROM
返回 TRUE。
以下是复制这些运算符的方法:
IS DISTINCT FROM
:<code class="language-sql">(a <> b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL)</code>
IS NOT DISTINCT FROM
:<code class="language-sql">(a = b OR a IS NULL AND b IS NULL)</code>
这些表达式考虑 NULL 值。 IS DISTINCT FROM
模拟可确保如果一个操作数为 NULL,则结果为 TRUE,除非 两个 均为 NULL。 IS NOT DISTINCT FROM
模拟简化为直接相等检查或双 NULL 检查。 这种方法避免了处理涉及 NULL 的布尔逻辑可能产生的 UNKNOWN
结果的复杂性。
以上是如何在SQL Server 2008 R2中模拟IS DISTINCT FROM和IS NOT DISTINCT FROM?的详细内容。更多信息请关注PHP中文网其他相关文章!