SQL Server 2008 R2 でのエミュレーションは IS DISTINCT FROM および IS NOT DISTINCT FROM です
SQL Server 2008 R2 には、IS DISTINCT FROM
と IS NOT DISTINCT FROM
の直接サポートがありません。 ただし、別の SQL 式を使用して同じ機能を実現できます。
IS DISTINCT FROM
は、オペランドが等しくない場合、またはどちらかのオペランドが NULL の場合に TRUE を返します。 IS NOT DISTINCT FROM
は、オペランドが等しい場合、または両方のオペランドが NULL の場合に 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
エミュレーションでは、1 つのオペランドが NULL の場合、両方 が NULL でない限り、結果が TRUE になることが保証されます。 IS NOT DISTINCT FROM
エミュレーションは、直接の等価性チェックまたは二重 NULL のチェックを簡素化します。 このアプローチにより、NULL を含むブール ロジックから生じる可能性のある UNKNOWN
結果の処理の複雑さが回避されます。
以上がSQL Server 2008 R2 で IS DISTINCT FROM と IS NOT DISTINCT FROM をシミュレートする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。