sql - "CASE WHEN"语句中的 "IN"运算符

标签 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 中 - 它们不能用逗号分隔。 有什么解决方案可以用其他方式写这个吗? 谢谢。

最佳答案

如果您不在 where 子句中使用 case,这会更简单。像这样的事情:

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

关于sql - "CASE WHEN"语句中的 "IN"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132655/

相关文章:

sql-server - SQL 函数返回错误值

sql - 具有可变列名的动态更新语句

sql-server - 带有默认命名空间的 SQL Server XQuery

没有子查询的sql server最大值计数

sql-server - 运行 Invoke-SqlCmd 时传递字符串参数?

sql - 搜索值列表的出现

mysql - 从具有时间戳和访客 ID 的 SQL 表生成访客 InTime 访客 OutTime 和访问持续时间(时间差)的 SQL 查询

SQL开始时间结束时间查询

c# - 如何在 TextBox Multiline 中选择行号

mysql - 多个表的 SQL 结构