是否可以使用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
有任何想法吗!!
是否可以使用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
有任何想法吗!!
不,您需要以不同的方式解决此问题:
Where (Id = 1 and StatusId in (1)) or (Id <> 1 and StatusId in (1, 3))
这种模式的变化是可能的。
对于您的示例,您可以简单地执行以下操作:
where StatusId = 1 or (Id <> 1 and StatusId = 3)
在 MySQL 中,这样的查询有效:
Select * from
Table
where case when Id = 1 then StatusId = 1
else StatusId in (1,3) end;
试试这个,让我知道它是否有效,谢谢