如何在CASE语句THEN子句中引用子选择返回值

时间:2019-04-30 15:58:54

标签: sql oracle

我将CASE语句与多个WHEN子句中的子选择组合在一起,这些子句检查null。我希望相应的THEN子句显示子选择返回的内容。是否可以引用THEN子句中WHEN子句的子选择返回的结果?

SELECT CASE WHEN (SELECT MAX(Column1) FROM Table1) IS NOT NULL 
            THEN [display the result]
            WHEN (SELECT MAX(Column1) FROM Table2) IS NOT NULL 
            THEN [display the result]
            ELSE 'Unknown' END
FROM dual

1 个答案:

答案 0 :(得分:0)

这是您想要的吗?

SELECT COALESCE( (SELECT MAX(Column1) FROM Table1),
                 (SELECT MAX(Column1) FROM Table2),
                 'Unknown'
               )
FROM dual;

注意:这假设Column1是一个字符串。否则,您可能会遇到类型转换错误。