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

如何根据薪资规则更新EMPSAL表的INCENTIVES列?

解决方案

用SQL的CASE语句来实现多条件分支更新是最直接的方式,代码如下:

UPDATE EMPSAL
SET INCENTIVES = 
  CASE
    WHEN SALARY < 1000 THEN SALARY * 1.05
    WHEN SALARY < 5000 THEN SALARY * 1.07
    WHEN SALARY > 6000 THEN SALARY
    ELSE INCENTIVES  -- 处理题目未明确的边界值(如5000、6000),保持原有值不变
  END;

细节解释

  1. 条件顺序很重要:CASE是从上到下匹配条件的,所以必须把范围更小的SALARY < 1000放在SALARY < 5000前面,不然前者会被后者覆盖,得不到正确结果。
  2. 边界值处理:题目没说明SALARY=5000和SALARY=6000的情况,这里我用ELSE INCENTIVES让这些行的INCENTIVES保持原来的NULL,如果有特殊需求,你可以直接修改这个分支的逻辑。
  3. 计算简化:把SALARY + (SALARY * 0.05)简化成SALARY * 1.05,写法更简洁,执行效率也一样。

执行后的数据结果

更新完成后,表数据会变成这样:

IDNAMESALARYINCENTIVES
1ABHI500525
2BABY600630
3CHARAN30003210
4DHANA40004280
5EMO5000NULL
6FARAN6000NULL
7GEO70007000
8JAHANGEER80008000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:44:08