是否可以在 IN 子句中使用 CASE 语句?
这是我一直试图正确编译的简化版本:
SELECT * FROM MyTable
WHERE StatusID IN (
CASE WHEN @StatusID = 99 THEN (5, 11, 13)
ELSE (@StatusID) END )
谢谢!
最佳答案
CASE
仅返回标量值。你可以这样做。 (我假设,根据您的示例,当 @StatusID = 99 时,StatusID 值 99 不匹配。)
select *
from MyTable
where (@StatusID = 99 and StatusID in (5, 11, 13))
or (@StatusID <> 99 and StatusID = @StatusID)
关于sql - 在 IN 子句中使用 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11232267/