這是代碼:
WHERE 1=1
AND TU.Auction_I IN (41, 42)
AND @StatePickupID = CASE
WHEN @StatePickupID IS NOT NULL
THEN (UP.TransportStateID = @StatePickupID)
END
AND @StateDropoffID = CASE
WHEN @StateDropoffID IS NOT NULL
THEN (UD.TransportStateID = @StateDropoffID)
END
所以我只想回傳 UP.TransportStateID 等于 StatePickupID 的記錄(如果它不為空),對于 DropoffID 也是如此。但是我在等號所在的位置收到一條語法錯誤訊息,并且我找不到任何其他方法來在線檢查相等性。任何幫助或建議將不勝感激。
uj5u.com熱心網友回復:
如果不為空,我只想回傳 UP.TransportStateID 等于 StatePickupID 的記錄
這將轉換為以下謂詞:
@StatePickupID IS NULL OR @StatePickupID = UP.TransportStateID
當引數不為空時,謂詞過濾TransportStateID; 當引數為空時,過濾器是空操作。
在您的where子句中,對于兩個引數:
WHERE 1 = 1
AND TU.Auction_I IN (41, 42)
AND ( @StatePickupID IS NULL OR @StatePickupID = UP.TransportStateID )
AND ( @StateDropoffID IS NULL OR @StateDropoffID = UD.TransportStateID )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/530943.html
下一篇:通過分隔符逗號將多列拆分為行
