oracle函数if else,oracle 菜鸟学习之 decode中if-then-else逻辑

oracle 菜鸟学习之 decode中if-then-else逻辑

decode类似于if - then - else

语法:

decode(values,if1,then1,if2,then2,...else)

values 代表某个表的任何类型的任意列或者一个通过计算所得的任何结果,当每个value值被测试,如果value的值为if1,decode函数的结果为then1,如果都不符合,那么就返回else。

这里的if、then及else都可以是函数或计算表达式。

例子

create table student(id number,name varchar2(4),sex number);

insert into student values(1,'A',1);

insert into student values(2,'B',2);

insert into student values(3,'C',1);

SQL> select * from student;

ID NAME SEX

---------- ------------ ----------

1 A 1

2 B 2

3 C 1

SQL>

问题:sex列,1显示为nan,2显示为nv

SQL> select id,name,decode(sex,1,'nan','nv') from student;

ID NAME DECODE(SE

---------- ------------ ---------

1 A nan

2 B nv

3 C nan

SQL>

sex -- values

1 -- if1

nan -- then1

nv -- else

实验

创建表:

create table sales(month number(3),sales_tv number(4),sales_computer number(4));

insert into sales values(01,10,18);

insert into sales values(02,28,20);

insert into sales values(03,36,33);

month:月份 sales_tv:电视机的销售量 sales_computer:计算机的销售量

问题:

选出每个月月份最多销售量,使用函数sign.

sign函数可以判断参数是正或负,正返回1,负返回-1,0返回0

SQL> select month,decode(sign(SALES_TV - SALES_COMPUTER),1,SALES_TV,0,SALES_TV,-1,SALES_COMPUTER) as max from sales;

MONTH MAX

---------- ----------

1 18

2 28

3 36

SQL>

原创:www.arppinging.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值