IN在WHERE子句的case语句中

时间:2011-08-10 18:13:03

标签: sql sql-server sql-server-2008

是否可以在WHERE子句的case语句中添加IN,如下所示:

WHERE

CASE WHEN @id IN(1,2) THEN ...
CASE WHEN @id IN(3,4) THEN...

我遇到语法错误...然后尝试删除IN添加OR,如下所示:

CASE WHEN @id = 1 OR @id = 2 THEN ...
CASE WHEN @id = 3 OR @id = 4 THEN ...

它起作用....但只是出于好奇我想知道我们是否可以使用IN ...... 请帮忙

2 个答案:

答案 0 :(得分:1)

您需要进一步解释。这绝对是有效的语法:

DECLARE @id int = 1

SELECT 'Foo'
WHERE 1 = CASE WHEN @id IN (1,3) THEN 1
          ELSE 0 
          END

THEN声明中包含哪些内容?

答案 1 :(得分:0)

您可能会尝试将条件放在括号中,例如:

( @id IN(1,2) )