是否可以有一个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')
...
有两个选项:
-
您可以在else中使用子查询,但前提是子查询返回单个值:
CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE (SELECT MAX(age) FROM PersonInfo) END
-
您可以使用加入
CASE WHEN (age NOT IN (SELECT age FROM PersonInfo) THEN 'field missing' ELSE pi.age END ..... join PersonInfo on