"CASE WHEN"操作符在"IN"语句中

Ted*_* G. 5 sql t-sql sql-server

我陷入了MS SQL SERVER 2012查询.我想要的是在WHERE子句的"IN"语句中的"CASE"运算符中写入多个值,请参阅以下内容:

WHERE [CLIENT] IN (CASE WHEN T.[IS_PHYSICAL] THEN 2421, 2431 ELSE 2422, 2432 END)
Run Code Online (Sandbox Code Playgroud)

这里的问题是在2421年,2431年 - 它们不能用逗号分隔.是否有任何解决方案以其他方式写这个?谢谢.

Gor*_*off 5

如果您不在子句中使用case,这会更简单where.像这样的东西:

where (T.[IS_PHYSICAL] = 1 and [client] in (2421, 2431)) or
      (T.[IS_PHYSICAL] = 0 and [client] in (2422, 2432))
Run Code Online (Sandbox Code Playgroud)