You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL中CASE表达式报错:缺失表达式或缺失关键字求助

解决Oracle SQL中CASE表达式的语法错误

我来帮你排查这个问题!你的报错根源其实在列别名的引号使用上——在Oracle SQL里,单引号是用来包裹字符串常量的,绝对不能用它来定义列别名。当你写AS 'PROBLEMS'时,Oracle会把'PROBLEMS'当成一个普通字符串值,而非列的别名,这直接打乱了SELECT语句的语法结构,所以才会抛出“缺失表达式”或“缺失关键字”这类模糊的语法错误。

修正后的两种可行写法:

  1. 直接省略引号(推荐,只要别名不是Oracle关键字或包含特殊字符):
SELECT CASE WHEN A.PARENT_ID IS NULL THEN 'NOPROB' ELSE 'PROB' END AS PROBLEMS 
FROM A
  1. 使用双引号包裹别名(如果别名需要保留大小写或包含空格、特殊字符时用):
SELECT CASE WHEN A.PARENT_ID IS NULL THEN 'NOPROB' ELSE 'PROB' END AS "PROBLEMS" 
FROM A

换成上面的写法后,你的语句应该就能正常执行了。

内容的提问来源于stack exchange,提问作者Lay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:25:08