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

在INSERT INTO语句中使用CASE语句报错:Unexpected CASE 求助

解决「Unexpected CASE」报错问题

你报错的核心原因是用错了SQL语句类型:你想用CASE逻辑填充已有行的空accountstatus列,但写的是INSERT语句——INSERT是用来新增数据行的,不是修改已有行的字段值,数据库无法识别CASE的位置,因此抛出「Unexpected CASE」错误。

正确的做法是用UPDATE语句修改已有记录,代码如下:

UPDATE customeraccounts
SET accountstatus = 
    CASE
        WHEN debt = 0 THEN 'closed'
        WHEN debt > 0 THEN 'open'
        WHEN debt < 0 THEN 'refund needed'
    END;

如果只想更新那些accountstatus原本为空的行,可以添加WHERE条件过滤,避免重复修改已有值:

UPDATE customeraccounts
SET accountstatus = 
    CASE
        WHEN debt = 0 THEN 'closed'
        WHEN debt > 0 THEN 'open'
        WHEN debt < 0 THEN 'refund needed'
    END
WHERE accountstatus IS NULL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:50:22