是否有可能使用in
命令基於case語句SQL陳述基於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語句SQL陳述基於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;
試試這個,讓我知道,如果它的工作,感謝
這個問題的標籤是'sql-server-2008',而不是'mysql'。 – LittleBobbyTables
是的..但我沒有得到sql-server-2008來驗證它是否工作。通過mysql檢查它。 – kasi
此查詢不適用於SQL Server,這是用戶所要求的。 – LittleBobbyTables
這個問題經常出現,在SQL或SQL Server標記wiki中確實應該鏈接到這些類型的問題。請注意自己......無論如何+1! – LittleBobbyTables