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

Snowflake中CASE语句内嵌套SELECT出现多处语法错误如何解决

错误原因
  • 语法规则不满足:Snowflake 要求 CASE 表达式的 THEN 后接标量子查询时,必须用括号将整个 SELECT 语句完整包裹。你当前的写法没有加括号,SQL 解析器会把 SELECT 识别为 CASE 结构外的关键字,无法匹配正常的 CASE 语法结构,因此抛出解析错误。
  • 返回值类型不统一:当前 CASE 各分支返回值类型不一致,前两个分支和 column1 is null 分支返回字符串类型,ELSE 分支返回数值类型,语法修正后也可能触发类型不匹配报错。
修复后的代码
select
    column1,
    case 
        when column1 = 1 then (select ename from emp where sal=2000)
        when column1 = 2 then (select ename from emp where sal=3000)
        when column1 is null then 'NULL'
        else '123'
    end as result 
from values (1), (2), (null);
补充说明

如果 emp 表中同一个 sal 取值对应多条 ename 记录,需要在对应子查询末尾增加 LIMIT 1,确保子查询只返回单个标量值,否则会触发「单行子查询返回多行」的运行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:54:04