私はこれについて最善の方法について無知です。現在のクエリは問題ありません。問題は、行が返されない場合に if ステートメントを true にすることです。また、クエリを 2 回書きたくないので、if ステートメントが true で実行されるようにするにはどうすればよいですか?
IF (select AnInt from ATable where Cond) = expectedInt
begin ... end
私はこれについて最善の方法について無知です。現在のクエリは問題ありません。問題は、行が返されない場合に if ステートメントを true にすることです。また、クエリを 2 回書きたくないので、if ステートメントが true で実行されるようにするにはどうすればよいですか?
IF (select AnInt from ATable where Cond) = expectedInt
begin ... end
aNULL
AnInt
が不可能な場合は、no-match でヌル サブセレクトの結果を次の値に等しくすることができます。expectedInt
IF isnull((select AnInt from ATable where Cond), expectedInt) = expectedInt
そのようです?
DECLARE @Test INT
SELECT @Test = AnInt
FROM ATable
WHERE Cond
IF @Test IS NULL OR @Test = expectedInt
BEGIN
...
END
IF Coalesce((select TOP 1 AnInt from ATable where Cond),expectedInt) = expectedInt
begin
end