複数の結合があり、それらに渡された変数が null の場合に問題が発生します。値が空のときに結合を無視する方法を知りたいです。私はこのようにできると思っていましたが、パラメーターのいずれかが値を持ち、残りが値を持たない場合、これは正しい結果をもたらしません。
@param1 int = NULL
,@param2 int = NULL
,@param3 int = NULL
SELECT t.ID,t.Col1 FROM Table t
JOIN RelationalTable1 t1 ON (@param1 IS NULL) OR ( t1.ID1 = t.ID AND t1.ID2 = @param1 )
JOIN RelationalTable2 t2 ON (@param2 IS NULL) OR ( t2.ID1 = t.ID AND t2.ID2 = @param2 )
JOIN RelationalTable3 t3 ON (@param3 IS NULL) OR ( t3.ID1 = t.ID AND t3.ID2 = @param3 )
パラメータが null の場合、これらの結合を非表示にするにはどうすればよいですか?