2016-08-04 119 views
2

我想在SQL中实现这个功能(基本上b = 2和c中(3,4,5)是两个条件,我想添加到我的select语句中顶级)。基于条件执行的条件返回值CASE语句

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

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

有人可以帮我解决这个问题吗?总查询太复杂了,无法将整个查询单独保留在THEN子句中。

+0

您的预期结果是什么?你可以使用多个'when'语句来模拟'if/else'语句... – sgeddes

+1

这是RDBMS的用途吗?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –

回答

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

啊......看到你的答案我明白了“为什么我没有想到那个时刻:P – SoulRayder

+0

很高兴我们能帮上忙。 –