Oracle 条件语句——decode与case

decode

语法如下:
decode(某列名,条件1,结果1,条件2,结果2….条件n,结果n,缺省值);
注意:
1、某条件与对应的结果成对出现,满足条件1则返回结果1,满足条件2则返回结果2….;
2、缺省值表示不满足前面所有条件的返回值;
3、如果条件重复,则返回缺省值。

例如:

SQL> select dname,decode(dname,'ACCOUNTING','财政部','SALES','销售部','其他部门
) 部门名 from dept;

/*
DNAME          部门名
-------------- --------
ACCOUNTING     财政部
RESEARCH       其他部门
SALES          销售部
OPERATIONS     其他部门
*/

case

第一种:

SQL> select case dname
  2  when 'ACCOUNTING' then '财政部'
  3  when 'SALES' then '销售部'
  4  else '其他部门' end 部门名
  5  from dept;

/*CASEDNAM
--------
财政部
其他部门
销售部
其他部门*/

注意:
1、case后是列名;
2、when then成对出现,when后面是表达式 then是结果;
3、else 是不满足前面所有的when 的返回值 end是关键字。

第二种

SQL> select ename, case
  2  when sal between 0 and 2000 then '低工资'
  3  when sal between 2000 and 3000 then '一般工资'
  4  when sal > 3000 then '高工资' else 'error' end
  5  from emp;

/*
ENAME      CASEWHEN
---------- --------
SMITH      低工资
ALLEN      低工资
WARD       低工资
JONES      一般工资
MARTIN     低工资
BLAKE      一般工资
CLARK      一般工资
SCOTT      一般工资
KING       高工资
TURNER     低工资
ADAMS      低工资

ENAME      CASEWHEN
---------- --------
JAMES      低工资
FORD       一般工资
MILLER     低工资

已选择14行。
*/

注意:
case后不需要再加列名;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值