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

如何在普通SELECT查询中相加跨表DECIMAL列值及报错修复

解决跨表DECIMAL列相加时的SELECT语法错误

问题重现

在普通SELECT查询中,尝试将LOAN和LOAN_PARTY表的DECIMAL类型列值相加时,触发语法错误:‘+’和‘)’附近语法不正确,错误出现在CASE语句的ELSE分支计算逻辑中。

根因分析

排查后确认:ELSE分支的合并计算语句遗漏了SELECT关键字,导致SQL解析器无法正确识别子查询结构,进而报错。

修正后的SQL示例

SELECT 
    base.loan_id,
    CASE
        -- 关联到LOAN_PARTY记录时,两表DECIMAL列相加
        WHEN party.party_id IS NOT NULL THEN
            (SELECT l.principal_amount + lp.contribution_amount 
             FROM LOAN l 
             JOIN LOAN_PARTY lp ON l.loan_id = lp.loan_id 
             WHERE l.loan_id = base.loan_id)
        -- 无关联记录时,仅取LOAN表的列值(此处需添加SELECT关键字)
        ELSE
            (SELECT l.principal_amount 
             FROM LOAN l 
             WHERE l.loan_id = base.loan_id)
    END AS total_calculated_amount
FROM LOAN base
LEFT JOIN LOAN_PARTY party ON base.loan_id = party.loan_id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:37:07