oracle day 2

通用函数

前两天边学习边在上面记录的内容,不知怎么搞的,找不到了。自己对这个还不是很熟悉,持续加强修炼。

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值