我有一个可以为null,1或0的布尔值。如果它是1,我需要它只返回Status Id值为4的行,如果它是0,那么除了4以外的任何行,如果它为null则所有价值观。
我希望做类似下面的事情,但这是不可能的,有没有人知道在WHERE子句中写这个的正确方法?
(O.Order_Status_Id = CASE WHEN @Include_Submitted = 1
THEN 4
WHEN @Include_Submitted = 0
THEN NOT 4
END
OR @Include_Submitted IS NULL)
答案 0 :(得分:4)
而不是case
表达式使用AND
和OR
。
(O.Order_Status_Id = 4 AND @Include_Submitted = 1)
OR (O.Order_Status_Id <> 4 AND @Include_Submitted = 0)
OR (@Include_Submitted IS NULL)