通用函数
前两天边学习边在上面记录的内容,不知怎么搞的,找不到了。自己对这个还不是很熟悉,持续加强修炼。
nullif();如果比较的值 相等,则返回空
Select Empno, Ename,job, length(ename),length(job),nullif(length(ename),length(job)) nullif
from emp;
执行结果的部分如下:
SMITH 7369 CLERK 5 5 null
ALLEN 7499 SALESMAN 5 8 5
WARD 7521 SALESMAN 4 8 4
decode()函数
decode 类似于程序中的if…else….if….else
如下表示:输入值为 2 ,则继续向右查找,如果2==1, 则结果为Content one, 如果2==2 则结果为content two;
Select
decode(2,1,'Content one',2,'content two')
from dual;
在查询时,需要把所有内容都要列出来,否则,若是找不到匹配项,就会输出null。
Select Ename, Sal,
Decode(Job,'CLERK','业务员',
'SALESMAN','销售人员',
'MANAGER','经理人员')
from emp;
case … when …then的用法
Select Ename,Job,Sal,
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 调整后的工资
from emp;
coalesce(表达式1,表达式2,表达式3。。。null)
以下的代码的意思是:如果comm为null,则结果为100;第二个,如果comm为空,则继续显示null。
Select Ename,sal, Comm,
Coalesce(Comm,100,2000),Coalesce(Comm,Null,Null)
from emp;