如何使用Case-When in another Case-When Condition in Oracle?

时间:2017-07-13 08:16:33

标签: sql oracle

在Oracle中执行以下SQL时

  SELECT (CASE
            WHEN (CASE
                    WHEN (1=1)
                      THEN (1=1)
                    ELSE (1=0) 
                  END) 
            THEN 1 
            ELSE 0 
          END) "m1"
  FROM "mock_table_1" "t0";

它将抛出以下错误消息

  

ORA-00907:缺少右括号

那么,如果我想使用Case-When in another Case-When Condition?

,我该怎么办?

1 个答案:

答案 0 :(得分:0)

(您可以省略括号)FROM DUAL仅用于测试

SELECT  CASE WHEN  CASE 
                   WHEN 1=1 THEN 1
                   ELSE 0 
                   END =1 THEN 1
             ELSE 0 END "m1"
  FROM DUAL;

CASE返回一个值。所以在END之后你可以做下一个条件