首页 > 解决方案 > 当我使用嵌套的 CASE WHEN 时,关键字“AS”附近的语法不正确

问题描述

我正在编写这个 sql 查询,但每当我运行它时,我都会在关键字“AS”附近得到不正确的语法。代码有问题吗?

SELECT PA.PolExec, SUM(ISNULL(PR.Re,0) + ISNULL(PF.Re,0)) AS Revenue, 
    CASE P.PolTypeLOB
        WHEN 'Me%' THEN 'MED'
        WHEN 'Pre' THEN 'MED'
        ELSE CASE P.TypeOfBus
            WHEN 1 THEN 'PL'
            WHEN 2 THEN 'CL'
            ELSE 'BEN'
        END AS PolType
    END AS PolType

标签: sqlsql-server

解决方案


取出内部别名——没有意义

所以它看起来像这样:

CASE P.PolTypeLOB
    WHEN 'Me%' THEN 'MED'
    WHEN 'Pre' THEN 'MED'
    ELSE CASE P.TypeOfBus
        WHEN 1 THEN 'PL'
        WHEN 2 THEN 'CL'
        ELSE 'BEN'
    END
END AS PolType

推荐阅读