如何解决带表和运算符的SQL CASE语句
尝试根据条件应用运算符。
我想使下面的查询有效;
SELECT fName,LName
WHERE active =1
AND CASE @statusid
WHEN -100 THEN (StatusID NOT IN (-5,-3))
WHEN -101 THEN StatusID NOT IN (-5,-3,-1)
WHEN -102 THEN StatusID NOT IN (-3)
ELSE StatusID = @statusid
END
解决方法
正如我在评论中提到的那样,T-SQL不支持Case
(Switch
)语句,仅支持CASE
表达式。但是,您只需要使用简单的“旧”布尔逻辑即可:
SELECT fName,lName
--Where is your FROM?
--I have added one
FROM dbo.YourTable
WHERE active = 1
AND ((@statusid = -100 AND StatusID NOT IN (-5,-3))
OR (@statusid = -101 AND StatusID NOT IN (-5,-3,-1))
OR (@statusid = -102 AND StatusID != -3)
OR StatusID = @Statusid);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。