首页 > 解决方案 > 我正在尝试在案例中使用 select 语句,但雪花中有很多语法错误

问题描述

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 to_number('123')
    end as result from values (1), (2), (null);

SQL 编译错误:在 '32' 附近的位置 37 处解析错误行 4。位置 44 处的语法错误第 4 行意外“来自”。位置 67 处的第 4 行语法错误意外'`'。在 '32' 附近的位置 37 处解析错误行 5。位置 25 处的语法错误第 5 行意外的 'then'。

标签: snowflake-cloud-data-platform

解决方案


子查询应放在括号中,如下所示:

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)
    else to_number('123')
end as result from values (1), (2), (null);

参考:在 CASE THEN 内选择


推荐阅读