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

如何正确使用CASE语句?SQL语法错误问题求助

问题解决:PostgreSQL CASE语句语法错误

错误原因

你直接将CASE作为独立SQL语句执行,但CASE是表达式而非可单独执行的语句,PostgreSQL不允许这种写法。此外,你的CASE分支试图返回多行结果集,而CASE表达式仅支持返回单个标量值或单行记录,无法处理多行场景。

正确写法

要实现“条件满足时返回10行,否则返回1行”的需求,推荐使用UNION ALL结合条件判断:

SELECT * FROM rate WHERE 1 > 2 LIMIT 10
UNION ALL
SELECT * FROM rate WHERE NOT (1 > 2) LIMIT 1;
  • 当1>2为真时,第一个查询执行并返回10行,第二个查询因条件不满足无结果
  • 当1>2为假时,第二个查询执行并返回1行,第一个查询无结果

如果你的实际条件是动态变量(比如替换1>2为真实业务条件),只需替换对应的判断逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:01:03