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

如何编写不选择CASE判断列的SQL CASE语句?

SQL CASE语句语法错误修复方案

错误的SQL语句

SELECT name
CASE
    WHEN (monthlymaintenance > 100) then 'expensive'
    ELSE 'cheap'
END cost
FROM cd.facilities

报错信息

ERROR: syntax error at or near "CASE"
Position: 33

Query was: SELECT name, monthlymaintenance
CASE
WHEN (monthlymaintenance > 100) then 'expensive'
ELSE 'cheap'
END cost
FROM cd.facilities

问题原因

报错核心是SELECT子句中多个字段/表达式之间缺少逗号分隔:原语句里name和CASE表达式直接相连,SQL解析器无法识别这是两个独立的选择项,因此抛出语法错误。

正确的SQL语句(不包含判断列monthlymaintenance)

SELECT name,
CASE
    WHEN monthlymaintenance > 100 THEN 'expensive'
    ELSE 'cheap'
END AS cost
FROM cd.facilities

关键修正点

  • 在name后添加逗号,明确分隔两个选择项;
  • 用AS显式指定CASE表达式的别名cost(省略AS也可运行,但显式写法可读性更强);
  • 条件判断中的括号(monthlymaintenance > 100)可以省略,不影响逻辑执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:17:07