【发布时间】:2012-06-13 06:48:31
【问题描述】:
我想在 where 子句中使用 CASE 和 IN 子句
- 当用户状态 = 1 时,CASE 应返回 1
- 当用户状态 = 2 时,CASE 应返回 2
- 当用户状态 = 3 时,CASE 应返回 3
- 当 User.Status = NULL 时,它应该显示所有状态为 1、2 和 3 的用户
但是下面的查询抛出了一个语法错误。
查询:
SELECT *
FROM User
where isInternalUser = 0 and DeleteMark <> 1 and
User.Status IN
(
CASE @UserStatus // case for UserStatus
WHEN 0 THEN 0
WHEN 1 THEN 1
WHEN 2 THEN 2
ELSE (0,1,2)
END
)
谁能帮帮我..
谢谢, 阿尼什
【问题讨论】:
-
您不能从
CASE的一个分支返回单个 int (0),也不能从另一个分支返回整个 int 列表。
标签: stored-procedures in-clause