我试着四处寻找但找不到任何可以帮助我的东西。
我正在尝试在SQL中执行此操作:
DECLARE @onlyMM INT
SET @onlyMM = 1
SELECT *
FROM cdn.magnag
WHERE CASE @onlyMM
WHEN 1
THEN man_zrdtyp NOT IN (
1616
,2001
)
ELSE - 1
END
我遇到了问题:
where case @onlyMM when 1 then man_zrdtyp not in (1616,2001) else -1 end
如何为运营商case
正确制作not in
?
答案 0 :(得分:6)
我认为您需要以不同的方式制定WHERE
子句。您可以使用OR
而不是case语句。像这样:
WHERE
(@onlyMM=1 AND man_zrdtyp not in (1616,2001))
OR @onlyMM<>1
答案 1 :(得分:0)
你不想这样做?
where (case when @onlyMM = 1 then man_zrdtyp else -1 end) not in (1616,2001)