在SQL Where子句中切换案例

时间:2013-07-31 17:15:09

标签: sql sql-server tsql case where

我想在CASE WHEN子句中使用一些WHERE语句,以根据特定变量允许不同的WHERE条件。我知道它是怎么样的,但我不知道它是否可能或使用什么语法。

我希望它可以这样使用:

SELECT * FROM Table1
WHERE
CASE WHEN @var = 1 THEN ID = 5 END,
CASE WHEN @var = 2 THEN Name = 'Bob' END,
CASE WHEN @var = 3 THEN Color = 'Green'

@var WHERE条件的每个实例的位置不同。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:4)

您不需要CASE

SELECT * FROM Table1
WHERE
(@var = 1 AND ID = 5) OR
(@var = 2 AND Name = 'Bob') OR
(@var = 3 AND Color = 'Green')