“CASE WHEN”操作符在“IN”语句中

时间:2016-03-21 13:42:59

标签: sql sql-server tsql

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

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

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

3 个答案:

答案 0 :(得分:5)

如果您不在echo "<option value='$row[Product_Name]'>$row[Product_Name]</option>"; 子句中使用case,这会更简单。像这样:

where

答案 1 :(得分:2)

我使用AND / OR代替案例表达。

WHERE (T.[IS_PHYSICAL] AND [CLIENT] IN (2421, 2431))
   OR (NOT T.[IS_PHYSICAL] AND [CLIENT] IN (2422, 2432))

答案 2 :(得分:2)

您可以将其分解为AND和OR的组合。

<beans profile="!prof1 !prof2">
    <security:authentication-manager id="authenticationManager">
    ...
    </security:authentication-manager>
</beans>