0
SELECT * FROM someTable WHERE someField = 'A'
and (EndTime > @someTime OR EndTime IS NULL)
上記は元のクエリです。今私はEndTime IS NULL
を取り除くかどうかを確認する新しい条件があります。where節の条件を条件付きで削除する方法はありますか?
SET @Throw = 1;
IF @Throw = 1
BEGIN
SELECT * FROM someTable WHERE someField = 'A'
and (EndTime > @someTime)
END
ELSE IF @Throw = 0
BEGIN
SELECT * FROM someTable WHERE someField = 'A'
and (EndTime > @someTime OR EndTime IS NULL)
END
これが1つのクエリ自体で達成できるのか、それとも2つのクエリでなければならないのでしょうか?
情報だけのために、なぜ '終了時間は、最初に述語OR条件としてNULL'されている場所ではありません。パフォーマンスに役立ちます。例えば、上のコードは次のようになります。 - 'someTable WHERE someField = 'A' と(EndTime IS NULL OR EndTime> @someTime)' –