为何CASE WHEN ELSE语句出现error code 1064?附需求及错误SQL
错误原因及修正方案
错误原因
- CASE语句未闭合:SQL的CASE表达式必须以
END关键字收尾,你的代码里漏掉了END,这是触发1064语法错误的直接原因。 - 逻辑条件搞反:需求是年龄大于40返回"Yes",但你写的是
age < 40 then 'Yes',和需求逻辑完全相反。 - 字符串大小写不符:ELSE分支返回的
'NO'和需求要求的'No'大小写不一致(语法上没问题,但不符合需求预期)。
修正后的SQL语句
SELECT patient_id, patient_name, CASE WHEN age > 40 THEN 'Yes' ELSE 'No' END AS age_over_40 FROM patients;
补充说明:
- 补上
END关键字闭合CASE表达式 - 将判断条件改为
age > 40匹配需求逻辑 - 统一返回字符串的大小写为
'Yes'和'No' - 给CASE表达式添加别名
age_over_40,方便识别返回列的含义
内容的提问来源于stack exchange,提问作者Amrish kumar
相关产品推荐
相关产品推荐

