Oracle中编写多返回值CASE WHEN语句报缺失关键字错误如何解决
正确CASE WHEN实现代码
SELECT login_id, CASE WHEN login_id = 'Thomas' THEN lastnm ELSE Secondarylastnm END AS lastname, CASE WHEN login_id = 'Thomas' THEN ssn ELSE Secondaryssn END AS SocialSecurityNumber FROM Employees;
原代码报错原因
- 单个
CASE WHEN是单行单值表达式,一次只能返回一个值,无法同时返回两个字段的结果,需要针对lastname和SocialSecurityNumber两个字段分别写独立的CASE WHEN逻辑 - 别名
AS语法要放在整个CASE WHEN ... END结构的后面,不能写在THEN/ELSE子句内部 ELSE关键字后面不需要再加THEN,属于语法冗余触发了缺失关键字报错
内容的提问来源于stack exchange,提问作者challengeAccepted
相关产品推荐
相关产品推荐

