CASE WHEN,THEN字段中有查询



是否可以有一个CASE WHEN查询,其中ELSE不是"文本字符串",而是返回一个变量?

示例:

CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE (SELECT age FROM PersonInfo)

根据实现的不同,您可能会有类似的东西

SELECT IFNULL(age, 'age missing') 
FROM PersonalInfo

SELECT COALESCE(age, 'age missing')
...

有两个选项:

  1. 您可以在else中使用子查询,但前提是子查询返回单个值:

    CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field 
    missing' ELSE (SELECT MAX(age) FROM PersonInfo) END
    
  2. 您可以使用加入

    CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE pi.age END
    .....
    join PersonInfo on
    

相关内容

  • 没有找到相关文章

最新更新