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

Oracle SQL中如何编写if else if条件 实现指定业务逻辑计算

SQL多分支条件计算实现

SQL中实现这类if-else-if逻辑统一使用标准语法CASE表达式,所有主流关系型数据库都兼容,直接套用即可。

单查询场景(计算结果作为输出字段)

SELECT 
    -- 此处补充你需要查询的其他原有字段
    CASE
        WHEN depcost <> empcost AND empcourseid IN ('A','B') 
            THEN (empvar / empdar) * empcost
        WHEN depcost <> empcost AND empcourseid <> 'A'
            THEN empcost
        ELSE depcost
    END AS empnfees
FROM 你的业务表名;

表字段更新场景(把计算结果写入现有empnfees字段)

UPDATE 你的业务表名
SET empnfees = CASE
        WHEN depcost <> empcost AND empcourseid IN ('A','B') 
            THEN (empvar / empdar) * empcost
        WHEN depcost <> empcost AND empcourseid <> 'A'
            THEN empcost
        ELSE depcost
    END
-- 可自行补充WHERE条件限定更新范围
;

注意事项

  • 若字段empdar存在为0的可能,建议添加除以0的异常判断,把(empvar / empdar)替换为CASE WHEN empdar = 0 THEN 0 ELSE empvar/empdar END即可
  • 如果你用的数据库有IF函数(比如MySQL)也可以嵌套IF实现,但CASE的兼容性和可读性更好,更推荐使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:05