Oracle SQL中CASE...WHEN语句报‘Missing Expression’错误求排查
修复你的SQL语法错误(Missing Expression)
Hey there, let's fix that "Missing Expression" error in your query—there are two small but critical syntax issues here:
问题1:列名后缺少逗号
你在CREATOR_NUM后面没有加逗号,数据库会误以为你要把CASE表达式作为CREATOR_NUM的参数(像函数调用一样),这直接导致了语法逻辑混乱。
问题2:CASE语句缺少END关键字
所有CASE表达式必须以END收尾,这是SQL的硬性语法规则。缺少它的话,数据库无法识别表达式的结束位置,自然会抛出"Missing Expression"错误。
修正后的完整SQL代码
SELECT ORDER_NUM, BUYER_NUM, CREATOR_NUM, CASE WHEN ORDER_CD = 'A' THEN 'Part' WHEN ORDER_CD = 'B' THEN 'Service' WHEN ORDER_CD = 'C' THEN 'Labor' ELSE 'Other' END AS ORDER_TYPE FROM tbl_ORDER WHERE ORDER_DATE > '01-Jan-2017'
我还帮你把代码做了格式化,结构更清晰,以后排查问题也会更方便。直接运行这个修正后的版本,应该就能正常返回你需要的订单数据了!
内容的提问来源于stack exchange,提问作者artemis
相关产品推荐
相关产品推荐

