数据库通用函数的使用

通用函数的使用

 

1. NVL(数字|列,默认值):如果显示数字是null,则使用默认数值表示,如果不为空,则显示原始值;

数据之中null是无法计算的,因为他是一个无法确定的值,所以它参加数学计算的话结果为null

要求查询出每个雇员的编号,姓名,职位,雇拥日期,年薪

SELECT empno,ename,job,hiredate,comm,(sal+NVL(comm,0))*12 年薪

FROM emp;

验证NVL()函数

SELECT NVL(3,2)

FROM dual;

2. NVL2(数字|列,返回结果1(不为空显示),返回结果2(为空显示)):判断指定列是否是null,如果不为null则显示结果1,否则返回结果2

查询每个雇员的编号,姓名,年薪,基本工资,奖金

SELECT empno,ename,NVL2(comm,sal+comm,sal)*12 年薪,sal,comm

FROM emp;

3. NULLIF(表达式1,表达式2):比较表达式1和表达式2的结果是否相等,如果相等返回NULL,如果不等返回表达式1

1.验证NULLIF()函数

SELECT NULLIF(1,1),NULLIF(1,2)

FROM dual;

2.验证NULLIF()函数:比较名字的长度和工作的名字长度是否相等

SELECT empno,ename,job,LENGTH(ename),LENGTH(job),

      NULLIF(LENGTH(ename),LENGTH(job)) NULLIF

FROM emp;

4. DECODE(列|值,判断值1,显示结果1.判断值2,显示结果2.。。。默认值):多值判断,如果某一个列(或者某一个值)与判断值相同,则使用指定的显示结果输出,如果没有满足条件,则显示默认值:就是哪个条件满足了,就直接输出这个条件的显示结果,否则显示默认值

验证DECODE()函数

SELECT

      DECODE(2,1,'内容为1',2'内容为2'),

      DECODE(2,1,'内容为1','没有满足条件')

FROM dual;

查询雇员的姓名,职员,基本工资等信息,但是要求所有的职位信息都换成中文显示

SELECT ename,job,

      DECODE(job,'CLERK','业务员',

      'SALESMAN','销售人员',

      'MANAGER','经理',

      'ANALYST','分析员',

      'PRESIDENT','jijie_KING'

      ) 职位

FROM emp;

5. CASE|数值WHEN表达式1THEN显示结果1….ELSE..表达式N…END:用于是吸纳多条件判断,在WHEN之后编写条件,而在THEN之后编写条件满足的显示操作,如果都不满足则使用ELSE中的表达式处理就是说case后面为要比较的列或者数值,when后面跟的是一个比较条件(与case后的列|数值相比较)满足的话就执行then后面的操作,不满足就执行else后的操作;

查询每个雇员姓名,工资,职位,同时显示新的工资(新的工资标准为:办事员增加10%,销售增加、20%,经理增加30%,其他职位增加50%

SELECT ename, sal,job,

      CASE job

    WHEN 'CLERK' THEN sal*1.1

     WHEN 'SALESMAN' THEN sal*1.2

    WHEN 'MANAGER' THEN SAL*1.3

  ELSE sal*1.5

  END NEWSAL

FROM emp;

6. COALESCE(表达式1,表达式2,。。。。表达式n):将表达式逐个判断,如果表达式1的内容是null,则显示表达式2,如果表达式2的内容是null,则显示表达式3,依次类推,如果表达式n的结果还是null,则返回null

验证:

SELECT COALESCE(NULL,'1',NULL,'3')

FROM dual;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值