广告
返回顶部
首页 > 资讯 > 数据库 >oracle 菜鸟学习之 decode中if-then-else逻辑
  • 620
分享到

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

oracle逻辑he 2022-10-18 02:10:30 620人浏览 薄情痞子
摘要

oracle 菜鸟学习之 decode中if-then-else逻辑 decode类似于if - then - else 语法:decode(values,if1,then1,if2,then2,...el

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

decode类似于if - then - else

语法:
decode(values,if1,then1,if2,then2,...else)

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

例子

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显示为nan2显示为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

您可能感兴趣的文档:

--结束END--

本文标题: oracle 菜鸟学习之 decode中if-then-else逻辑

本文链接: https://www.lsjlt.com/news/36815.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作