ホームページ > データベース > mysql チュートリアル > SQL Server 2008R2 で IS DISTINCT FROM および IS NOT DISTINCT FROM 演算子を書き換えるにはどうすればよいですか?

SQL Server 2008R2 で IS DISTINCT FROM および IS NOT DISTINCT FROM 演算子を書き換えるにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-11 10:54:43
オリジナル
813 人が閲覧しました

How Can I Rewrite IS DISTINCT FROM and IS NOT DISTINCT FROM Operators in SQL Server 2008R2?

SQL Server 2008R2 の IS DISTINCT FROM 演算子の書き換え

SQL Server 2008R2 は、標準の IS DISTINCT FROM 演算子と IS NOT DISTINCT FROM 演算子をサポートしていません。この記事では、このバージョンのソフトウェアと互換性のある代替構文を使用してこれらの式を書き直すソリューションを提供します。

とは異なります

IS DISTINCT FROM 述語は、2 つの値が等しくない場合、または値の 1 つが NULL の場合は True と評価され、それらが等しく、どちらも NULL でない場合は False と評価されます。これは次のように書き換えることができます:

<code class="language-sql">((a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))</code>
ログイン後にコピー

例:

<code class="language-sql">SELECT CASE
    WHEN (a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL) THEN 'True'
    ELSE 'False'
END AS DistinctResult</code>
ログイン後にコピー

と区別できません

IS NOT DISTINCT FROM 演算子は、2 つの値が等しいか両方が NULL の場合は True と評価され、等しくなく、両方とも NULL ではない場合は False と評価されます。これは次のように書き換えることができます:

<code class="language-sql">(NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))</code>
ログイン後にコピー

例:

<code class="language-sql">SELECT CASE
    WHEN (NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL)) THEN 'True'
    ELSE 'False'
END AS NotDistinctResult</code>
ログイン後にコピー

注:

提供されたオーバーライドにより、結果が常に True または False になることが保証され、NULL オペランドで発生する可能性のある Unknown 状態が回避されます。

以上がSQL Server 2008R2 で IS DISTINCT FROM および IS NOT DISTINCT FROM 演算子を書き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート