当我有多个连接并且传递给它们的变量为空时,我遇到了问题。我想知道当值为空时如何忽略联接。我以为我可以这样做,但是当任何一个参数有值而其他参数没有值时,这不会给我带来正确的结果。
@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 )
当它们的参数为空时,如何使这些连接消失?