我想使用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
答案 0 :(得分:3)
请勿CASE
使用WHERE
,OR
和AND
:
WHERE
( @pFILTER_TYPE = 1 AND FULFILMENT_STATUS_CODE <> 'CNL' )
OR
( @pFILTER_TYPE = 2 AND FULFILMENT_STATUS_CODE = 'FUL' )
但是,除了为每条记录评估参数外,您还可以在此存储过程中使用IF...ELSE
和两个不同的查询。这更详细但也更有效率。