Oracle中常用sql函数(2)

1、decode[实现if ..then 逻辑]   注:第一个是表达式,最后一个是不满足任何一个条件的值

    select ENAME,decode(deptno,10,'部门1',20,'部门2',30,'部门3','其他') "所在部门" from emp;---------说明:deptno若为10则部门1........否则都不满足则其他

2、case  when [实现if ..then 逻辑] 

(1)case 字段

  when  ‘值1’  then  ‘展现值1’

  when  ‘值2’  then  ‘展现值2’

  else ‘其他’  end                               ----------------------此种case较少用,因为无法写判断表达式(如大于,小于),受限制较多

(2)case

  when  表达式1  then  ‘展现值1’

  when  表达式2  then  ‘展现值2’

  else ‘其他’  end        -----------------------此种较为常用

例子:update student_drb set sex= case when sex='男' then 1 else 2 end

(3)In 在某集合内
  select * from emp t where t.deptno in(30,10);
 
(4)exists 是否存在
          查找部门号是10的所有员工信息
           select * from emp e where exists(select 1 from dept d where e.deptno=d.deptno and d.deptno=10);

          查找部门号不是10的所有员工信息
          select * from emp e where not exists(select 1 from dept d where e.deptno=d.deptno and d.deptno=10);

注意:用exists可以提高sql的效率,可以取代in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值