如何从SQL Server CASE
语句返回IS NOT NULL?
我尝试过这样的事情:
WHERE
a.BillToCustomerID IS NOT NULL
AND CASE @taxSchedRequiered
WHEN 1 THEN a.TaxScheduleID IS NOT NULL
END
但是它对我不起作用。
更新
我需要按a.TaxScheduleID不为NULL进行过滤,仅在特定情况下,变量@taxSchedRequiered的值(可能值为:null,0、1)为1。
答案 0 :(得分:1)
只需更改逻辑并使用OR
WHERE
a.BillToCustomerID IS NOT NULL
AND (@taxSchedRequiered <> 1 OR a.TaxScheduleID IS NOT NULL)
如果@taxSchedRequiered = 0
,它将包括所有记录;否则,它将仅包括具有a.TaxScheduleID <> NULL
的记录
执行此操作时,还请确保@taxSchedRequired
的值不是NULL
编辑以检查空参数
WHERE
a.BillToCustomerID IS NOT NULL
AND (ISNULL(@taxSchedRequiered,0) = 0 OR a.TaxScheduleID IS NOT NULL)