oracle 函数的条件判断,Oracle系列:(11)通用函数和条件判断函数

使用NVL(a,b)通用函数,统计员工年收入,NVL()作用于任何类型,即(number/varchar2/date)

通用函数:参数类型可以是number或varchar2或date类型

select ename,sal*12+NVL(comm,0) from emp;

8c1f20bf8b5aa2e46d5bb1887a37f231.png

使用NVL2(a,b,c)通用函数,如果a不为NULL,取b值,否则取c值,统计员工年收入

select ename,sal*12+NVL2(comm,comm,0) from emp;

3356e13c4290d3dcd8ce15896bf5f972.png

使用NULLIF(a,b)通用函数,在类型一致的情况下,如果a与b相同,返回NULL,否则返回a,比较10和10.0是否相同

select NULLIF(10,'10') from dual;

b93154f0e9c621f04b99e942d967ca5b.png

使用SQL99标准通用语法中的case表达式,将职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400

case 字段

when 条件1 then 表达式1

when 条件2 then 表达式2

else 表达式n

end

课后请参考-12.2这个章节

select ename "姓名",job "职位",sal "涨前工资",

case job

when 'ANALYST' then sal+1000

when 'MANAGER' then sal+800

else sal+400

end "涨后工资"

from emp;

cf0f2f61196c15e40b6647f6ce6175ce.png

be89357528f4ec7095a1a39f80f7f4e8.png

使用oracle专用语法中的decode()函数,职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400

decode(字段,条件1,表达式1,条件2,表达式2,...表达式n)

select ename "姓名",job "职位",sal "涨前工资",

decode(job,'ANALYST',sal+1000,'MANAGER',sal+800,sal+400) "涨后工资"

from emp;

ae09313c95e924cd997ccc11697ea970.png

单引号出现的地方如下:

1)字符串,例如:'hello'

2)日期型,例如:'17-12月-80'

3)to_char/to_date(日期,'YYYY-MM-DD HH24:MI:SS')

双引号出现的地方如下:

1)列别名,例如:select ename "姓 名" from emp

2)to_char/to_date(日期,'YYYY"年"MM"月"DD"日" HH24:MI:SS')‘’号中的英文字符大小写不敏感

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值