SQL Server での NULL 比較の最適化
SQL Server クエリで Null 許容変数を扱うときは、比較を効率的に処理することが重要です。 NULL の可能性がある変数 @OrderID があるとします。変数の値に基づいてデータをクエリするには、IF ELSE ステートメントを使用して NULL をチェックする必要があります。ただし、このような比較を 1 つのクエリで実行する、より簡潔な方法があります。
推奨されるアプローチは、EXISTS 演算子と INTERSECT 集合演算子を併用することです。次のコード スニペットはこれを示しています。
SELECT * FROM Customers WHERE EXISTS (SELECT OrderID INTERSECT SELECT @OrderID);
このクエリは、@OrderID の値が Customers テーブルの OrderID 列に存在するかどうかを効率的にチェックします。 @OrderID が NULL の場合、OrderID も NULL である行が返されます。逆に、@OrderID に NULL 以外の値がある場合は、OrderID が @OrderID と等しい行が返されます。
このアプローチは、最適化されたプランが生成されることを示唆する「文書化されていないクエリ プラン: 等価比較」の原則に準拠しています。 INTERSECT を使用して変数をそれ自体と比較する場合。この手法を採用すると、クエリを合理化し、NULL 許容変数を処理する際のパフォーマンスを向上させることができます。
以上がSQL Server クエリで Null 許容変数を効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。