たとえば 「@HogeId が指定されたら 1 件だけ処理、@HogeId が NULL の場合は絞り込まずに全件処理」 みたいなことがしたかったのだけど、
IF @HogeId IS NULL
BEGIN
SELECT * FROM Hoge
END
ELSE
BEGIN
SELECT * FROM Hoge WHERE HogeId = @HogeId
END
みたいなのしか思いつかなくてちょっと悩んだ。
(できれば条件がちょっと違うだけの SQL を何度も書きたくなかった)
ぐぐったら良さそうな方法を見かけたのでメモ。
ISNULL をかましてあげると良いらしい。
WHERE HogeId = ISNULL(@HogeId, HogeId)
CASE 文とか使う例もあったけど、これが一番見やすかった。