SQL Server での NULL 値の比較
SQL Server では、クエリでの NULL 許容値の処理が困難な場合があります。 WHERE 句で使用される変数が NULL になる可能性があり、IF ELSE ステートメントを使用した条件付きクエリが必要になるシナリオを考えてみましょう。ただし、このような状況を 1 つのクエリでエレガントに処理することは可能です。
NULL 比較に EXISTS を使用する
条件付きアプローチを使用する代わりに、EXISTS を利用できます。 NULL 値を効果的に比較するための演算子:
SELECT * FROM Customers WHERE EXISTS ( SELECT OrderID INTERSECT SELECT @OrderID );
このクエリは次の処理を効率的に実行します。手順:
したがって、@OrderID が NULL の場合、クエリはデータ型に関係なく、OrderID も NULL である行を返します。 @OrderID に NULL 以外の値がある場合、クエリは OrderID がその値と一致する行を返します。
追加リソース
クエリ プランでの等価比較の詳細については、については、「文書化されていないクエリ プラン: 等価比較」の記事を参照してください。
以上がEXISTS と INTERSECT は SQL Server クエリでの NULL 値の比較を効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。