代码如下:
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也是一样。但是我得到了一个语法错误消息,其中等号是,我找不到任何其他在线检查相等性的方法。如果有任何帮助或建议,我将不胜感激。
1条答案
按热度按时间k5ifujac1#
我只想返回UP.TransportStateID等于StatePickupID(如果不为空)的记录
这将转换为以下 predicate :
当参数不为null时, predicate 在
TransportStateID
上进行筛选;当参数为空时,过滤器为空操作。在
where
子句中,对于两个参数: