Skip to content

庄朋龙的博客

有志者自有千方万计,无志者只感千难万难。

Menu
  • 首页
  • 生活
  • 创业
  • 编程
  • 运维
  • 视频课程
    • 跨境独立站
    • Shopee跨境电商
    • TEMU跨境电商
  • 资源分享
    • 网站推荐
    • 开源推荐
    • 可商用字体
    • 书籍分享
Menu

Oracle SQL中的条件表达式

Posted on 2015年12月25日2025年3月4日 by 庄朋龙

在编程语言中常用的条件表达式就是if了,在oracle中也有类似打条件表达式 case

比如,我们要实现一个个员工涨工资的SQL,总裁(PRESIDENT)涨1000,经理(MANAGER)涨800,其他人涨400. 然后将将涨前,涨后的薪水列出

这件事在编程语言里和容易做到思路如下:

if 是总裁(‘PRESIDENT’)  then +1000

else if 是经理(‘MANAGER’)  then +800

else +400

但是sql里面并没有if语句,但是oracle提供了case来代替if

SELECT ename, job, sal 原工资, CASE job WHEN 'PRESIDENT' THEN sal+100
                                       WHEN 'MANAGER' THEN sal+800
                                       ELSE sal+400
                              END 涨后工资
from emp;

语法注意:when then 与下一个when then以及end之间没有“,”分割符。

以上功能还可以使用decode函数来实现, decode(参1, 条件, 值, 条件, 值, …, 条件, 值, 尾参)

除第一个和最后一个参数之外,中间的参数都是成对呈现的 代码如下:

SELECT ename, job, sal 原工资, DECODE(job, 'PRESIDENT', sal+1000,
                                          'MANAGER', sal+800,
                                           sal+400) AS 涨后工资
FROM emp;
Category: 资源分享

全栈开发者×创业偏执狂

相信代码能改变命运,也相信凌晨四点的服务器警报里有真实的人生。

我的创业项目:
SHOPAGG / SmallShop / DigitShops / 文硕阁

© 2025 庄朋龙的博客