我有兩個變量從外部系統傳遞到查詢中的情況。有條件地過濾由變量值確定的結果
如果變量爲0,那就意味着不要過濾它。
因此,像這樣:
--if @a = 0 then don't filter by @a
--if @b = 0 then don't filter by @b
SELECT * FROM Engines e
JOIN Transmissions t ON e.carId = t.carId
WHERE e.engineId IN(@a)
AND t.transmissionId IN (@b)
因此,舉例來說,如果@a爲0,那麼只擔心過濾傳輸。和查詢將基本上是:
SELECT * FROM Engines e
JOIN Transmissions t ON e.carId = t.carId
WHERE t.transmissionId IN (@b)
或者,如果@b是0,那麼它會是這樣的:
SELECT * FROM Engines e
JOIN Transmissions t ON e.carId = t.carId
WHERE e.engineId IN(@a)
或者,如果雙方@a和@b爲0,則表明一切是這樣的:
SELECT * FROM tblA a
JOIN tblB b ON a.carId = b.carId
有沒有辦法像這樣有條件地過濾?
感謝