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

SQL中如何在UPDATE表命令中使用IF语句按条件更新多个字段

实现SQL(Oracle环境)

你可以直接通过CASE WHEN条件表达式完成单条UPDATE语句同步更新两个字段,写法如下:

UPDATE report
SET 
  bill_amount = CASE category_code
                  WHEN 1 THEN units_consumed * 0.90
                  WHEN 2 THEN units_consumed * 2.40
                  WHEN 3 THEN units_consumed * 0.50
                  ELSE bill_amount -- 非指定分类保留原有账单金额
                END,
  remarks = CASE category_code
              WHEN 1 THEN 'DOMESTIC'
              WHEN 2 THEN 'COMMERCIAL'
              WHEN 3 THEN 'FARMERS'
              ELSE remarks -- 非指定分类保留原有备注
            END;

可选优化

如果仅需要更新category_code为1/2/3的记录,减少不必要的全表操作,可以在语句末尾增加过滤条件:

WHERE category_code IN (1,2,3);

如果需要处理units_consumed为空的异常场景,可给计算结果设置默认值,示例:

bill_amount = NVL(CASE category_code
                  WHEN 1 THEN units_consumed * 0.90
                  WHEN 2 THEN units_consumed * 2.40
                  WHEN 3 THEN units_consumed * 0.50
                END, 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:06:02