2

是否可以使用in基于 case 语句的命令

我尝试过这样的事情

@Id int

Select * 
From Table 
Where  StatusId in( case when Id =1 then 1 else 1,3 end)

    Select * 
    From Table 
    Where  StatusId in case when Id =1 then (1) else (1,3) end

有任何想法吗!!

4

3 回答 3

3

不,您需要以不同的方式解决此问题:

Where (Id = 1 and StatusId in (1)) or (Id <> 1 and StatusId in (1, 3))

这种模式的变化是可能的。

于 2012-09-25T14:09:41.407 回答
2

对于您的示例,您可以简单地执行以下操作:

where StatusId = 1 or (Id <> 1 and StatusId = 3)
于 2012-09-25T14:10:53.873 回答
-1

在 MySQL 中,这样的查询有效:

Select * from 
Table
where case when Id = 1 then StatusId = 1
    else StatusId in (1,3) end;

试试这个,让我知道它是否有效,谢谢

于 2012-09-25T14:21:33.953 回答