SQL Server 2008R2 ではリライトは DISTINCT FROM であり、IS NOT DISTINCT FROM です
質問:
Microsoft SQL Server 2008R2 (IS DISTINCT FROM 演算子と IS NOT DISTINCT FROM 演算子はサポートされていません) で、IS DISTINCT FROM 演算子と IS NOT DISTINCT FROM 演算子を含む式を書き直すにはどうすればよいですか?
答え:
は
とは異なりますIS DISTINCT FROM 述語は、2 つの値を比較するときにバイナリ結果 (true または false) を保証します。 SQL Server 2008R2 の場合、この述語は次の式を使用してシミュレートできます:
<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 は 2 つの値の間に大きな違いがあるかどうかをチェックします。これは次のように書き換えることができます:
<code class="language-sql">(NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))</code>
誤答との比較
与えられた不正解は、ブール式の NULL 値の評価を考慮していません。たとえば、NULL IS DISTINCT FROM NULL は False と評価されるはずですが、式が正しくないと Unknown となります。
以上がSQL Server 2008R2 で IS DISTINCT FROM と IS NOT DISTINCT FROM を書き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。