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

如何将嵌套IIF语句改写为Oracle CASE WHEN语句

将嵌套IIF转换为Oracle CASE WHEN语句

转换后的标准CASE WHEN实现

CASE
    WHEN IN_RNK = 1 THEN
        CASE
            WHEN IN_SUM > 2 THEN
                CASE
                    WHEN IN_MTR_COVERAGE_NUMBER_A = 'A' THEN 'ORIGINAL BASE'
                    ELSE 'ORIGINAL RIDER'
                END
            ELSE IN_MTR_COVERAGE_NUMBER_A
        END
    ELSE IN_MTR_COVERAGE_NUMBER_A
END

简化版(合并重复逻辑)

如果想让代码更紧凑,可合并外层相同的ELSE分支:

CASE
    WHEN IN_RNK = 1 AND IN_SUM > 2 THEN
        CASE WHEN IN_MTR_COVERAGE_NUMBER_A = 'A' THEN 'ORIGINAL BASE' ELSE 'ORIGINAL RIDER' END
    ELSE IN_MTR_COVERAGE_NUMBER_A
END

逻辑对应说明

原嵌套IIF的逻辑可拆解为:

  • 仅当IN_RNK = 1且IN_SUM > 2时,才根据IN_MTR_COVERAGE_NUMBER_A的值返回特定字符串
  • 其余所有场景,直接返回IN_MTR_COVERAGE_NUMBER_A的原始值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:18:10