SQL Server での NULL 値の比較
SQL Server クエリで Null 許容変数を扱う場合、そのようなケースを明示的に処理する必要があります。従来、これは IF-ELSE ブロックなどの条件文を使用して行われていました。ただし、単一のクエリで NULL 値をチェックする、より簡潔で効率的な方法があります。
次のシナリオを考えてみましょう:
DECLARE @OrderID UNIQUEIDENTIFIER IF @OrderID IS NULL BEGIN SELECT * FROM Customers WHERE OrderID IS NULL END ELSE BEGIN SELECT * FROM Customers WHERE OrderID = @OrderID END
単一のクエリで同じ結果を達成するには、次の構文を利用できます:
SELECT * FROM Customers WHERE EXISTS (SELECT OrderID INTERSECT SELECT @OrderID)
このクエリは、セット交差の機能を利用して NULL 値を効率的に処理します。入力変数 @OrderID が NULL の場合、結果は空のセットとなり、FALSE 条件になります。逆に、@OrderID に null 以外の値が含まれている場合は、INTERSECT 演算子を使用してそれ自体と比較され、TRUE 条件が得られます。
この方法には、条件ステートメントに比べていくつかの利点があります。
この手法を利用すると、クエリ内で null 許容値をより効率的かつ効果的に処理できます。
以上がSQL Server クエリで NULL 値を効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。