Oracle系列:(11)通用函数和条件判断函数
使用NVL(a,b)通用函数,统计员工年收入,NVL()作用于任何类型,即(number/varchar2/date)
通用函数:参数类型可以是number或varchar2或date类型
select ename,sal*12+NVL(comm,0) from emp;
使用NVL2(a,b,c)通用函数,如果a不为NULL,取b值,否则取c值,统计员工年收入
select ename,sal*12+NVL2(comm,comm,0) from emp;
使用NULLIF(a,b)通用函数,在类型一致的情况下,如果a与b相同,返回NULL,否则返回a,比较10和10.0是否相同
select NULLIF(10,'10') from dual;
使用SQL99标准通用语法中的case表达式,将职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400
case 字段
when 条件1 then 表达式1
when 条件2 then 表达式2
else 表达式n
end
课后请参考<MySQL5.X的手册>-12.2这个章节
select ename "姓名",job "职位",sal "涨前工资",
case job
when 'ANALYST' then sal+1000
when 'MANAGER' then sal+800
else sal+400
end "涨后工资"
from emp;
使用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;
单引号出现的地方如下: 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')‘’号中的英文字符大小写不敏感 |
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341