NVL(数字|列,默认值):如果显示的数字是null,则使用默认值表示
NVL2(数字|列,返回结果1(不为空显示),返回结果2(为空显示)):数字为null显示返回结果2,不为null显示返回结果1
NULLIF(表达式1,表达式2):判断两表达式结果是否相等,相等返回NULL,不等返回表达式1
DECODE(列|值,判断值1,显示结果1,判断值2,显示结果2,...,默认值):查看某一列与哪个判断值相等,返回与之相等的结果,没有则返回默认值
CASE 列|数值 WHEN 表达式1 THEN 显示结果1...ELSE 表达式n...END:实现多条判断,WHEN中写条件,THEN中写操作,不满足WHEN就执行ELSE中表达式
COALESCE(表达式1,表达式2,表达式3...表达式n):逐个判断表达式,直到找到不为null的表达式,找到则返回表达式结果,没有返回NULL
NVL处理默认值:
select (sal+NVL(comm,0))*12 年薪 from emp;
NVL2处理默认值:
select NVL2(comm,sal+comm,sal) 工资 from emp;
NULLIF使用:
select NULLIF(1,1),NULLIF(1,2) from dual;
DECODE:
SELECT DECODE(job,'CLERK','业务员','SALESMAN','销售人员','MANAGER','经理') job from emp;
注意:判断内容中没有符合要求的结果将返回null
CASE:
SELECT CASE job WHEN 'CLERK' THEN sal*1.2 ELSE sal*1.5 END 新工资 from emp;
COALESCE:
SELECT COALESCE(comm,1000,100),COALESCE(comm,null,null) from emp;