我想使用 CASE 检查同一字段的 WHERE 子句上的两个矛盾条件;
如果我提取我想要的东西,如下所示
WHERE FULFILMENT_STATUS_CODE != 'CNL'
WHERE FULFILMENT_STATUS_CODE = 'FUL'
我尝试(并想要)的方式如下,但我不知道如何在她中添加 !=
WHERE
FULFILMENT_STATUS_CODE =
CASE @pFILTER_TYPE
WHEN 1 THEN 'CNL'
WHEN 2 THEN 'FUL'
END
最佳答案
不要在 WHERE
中使用 CASE
,而是使用 OR
和 AND
:
WHERE
( @pFILTER_TYPE = 1 AND FULFILMENT_STATUS_CODE <> 'CNL' )
OR
( @pFILTER_TYPE = 2 AND FULFILMENT_STATUS_CODE = 'FUL' )
但是,除了评估每个记录的参数之外,您还可以在此存储过程中使用 IF...ELSE
和两个不同的查询。这更冗长,但也更有效。
关于sql - 对带有 Case 语句的Where进行矛盾条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38501926/