sql - 有条件 根据 CASE 语句的返回值执行条件

标签 sql

我想在 SQL 中实现此功能(基本上 (3,4,5) 中的 b=2 和 c 是我想添加到顶层 select 语句中的两个条件)。

如果a=1,那么我希望检查第一个条件,否则应检查第二个条件。

CASE 
  WHEN a=1 THEN {AND b=2}
  ELSE {AND c in (3,4,5)}

总查询太复杂,我无法将整个查询单独保留在 THEN 子句中。

最佳答案

SELECT Stuff
FROM Table
WHERE
SomeCondition
AND
(
     (a=1 AND b=2)
 OR
     ((NOT a=1) AND (c in (3,4,5)))
)

关于sql - 有条件 根据 CASE 语句的返回值执行条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38758524/

相关文章:

java - 在Android屏幕方向更改上重绘SQL中的多段线

c# - SQL 参数集合

sql - VIEW 定义中的 "ERROR: column ... specified more than once"

php - 列中的复选框数据?

mysql - 使用 TIMESTAMP 数据类型选择特定日期的行

php - SQLSTATE[HY093] : Invalid parameter number: number of bound variables does not match number of tokens - help needed

java - eclipse中的sql更新查询

c# - MySqlHelper.Execute 异常 (C#) - 参数出现错误

java - 获取 SQLJ 更新语句中受影响的行数

sql - 您正在等待哪些 SQL 改进?