0
當我有多個連接並且傳遞給它們的變量爲空時,我遇到了問題。我想知道如何在值爲空時忽略連接。我認爲我可以這樣做,但是當這些參數中的任何一個具有價值而其餘的不具備價值時,這並沒有給我帶來正確的結果。如何在變量爲空時忽略連接
@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)
如何讓這些連接消失,當他們的參數爲空?
結果不正確?請舉一個例子。您可以在http://sqlfiddle.com上創建一個 –
當所有參數都是emtpy時它返回0結果,或者當1+參數不爲null時它不返回數據複合。 –
你應該寫dymanic sql來處理這個問題。你不能忽略一個連接。如果它只有2或3個參數,你可以使用If結構編寫單獨的選擇,但是3個以上的參數很快就會失控,甚至有3個參數可以手動處理。 – HLGEM