-1

私はこれについて最善の方法について無知です。現在のクエリは問題ありません。問題は、行が返されない場合に if ステートメントを true にすることです。また、クエリを 2 回書きたくないので、if ステートメントが true で実行されるようにするにはどうすればよいですか?

IF (select AnInt from ATable where Cond) = expectedInt
begin ... end
4

3 に答える 3

3

aNULL AnIntが不可能な場合は、no-match でヌル サブセレクトの結果を次の値に等しくすることができます。expectedInt

IF isnull((select AnInt from ATable where Cond), expectedInt) = expectedInt
于 2013-01-07T16:19:12.987 に答える
2

そのようです?

DECLARE @Test INT

SELECT @Test = AnInt
FROM ATable
WHERE Cond

IF @Test IS NULL OR @Test = expectedInt
BEGIN
...
END
于 2013-01-07T16:16:43.570 に答える
2
IF Coalesce((select TOP 1 AnInt from ATable where Cond),expectedInt) = expectedInt
begin
end
于 2013-01-07T16:18:39.563 に答える