Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于CASE语句返回值的条件执行_Sql - Fatal编程技术网

Sql 基于CASE语句返回值的条件执行

Sql 基于CASE语句返回值的条件执行,sql,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子句中。您期望的结果是什么?您可以使用多个when语句来模拟if/else语句……这是用于哪个RDBMS的?请添加一个标记来指定您是在使用mysql、postgr

我想在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子句中。

您期望的结果是什么?您可以使用多个
when
语句来模拟
if/else
语句……这是用于哪个RDBMS的?请添加一个标记来指定您是在使用
mysql
postgresql
sqlserver
oracle
还是
db2
——还是完全使用其他东西。啊。。。看到你的回答,我得到了“为什么我没有想到那一刻”:PGlad我们可以帮忙。
SELECT Stuff
FROM Table
WHERE
SomeCondition
AND
(
     (a=1 AND b=2)
 OR
     ((NOT a=1) AND (c in (3,4,5)))
)