1.薪水表,如下所示,要求:为下一年调整工资22000以下的员工涨工资10%,24000以上的员工减少10%
思考:如果先update薪水24000以上的员工,假设某工资为24000,24000*(1-10%)=21600;然后调整22000以下工资员工的时候,这位员工工资会被再一次被修改。不符合预期政策。同样若先更新22000以下员工同样会出现工资更新后超过24000,被重复更新的两次的情况,比如21900*1.1=24090。
结论:必须所有数据一次更新
sql:
update salary SET SALARY =
case when SALARY > 2400 then SALARY*0.9
when SALARY < 2200 then SALARY*1.1 else SALARY end
注意: else SALARY end必须写,不然2200—2400区间的员工工资会被更新为null。
case子句没有明确指定else会被默认处理成else null
先到这里,困死~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?