oracle判断语句集合,Oracle判断语句集合

decode函数说明:

decode函数可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。

函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值。

如果应用中没有建立代码表,使用docode函数进行key–>value的转换是一种不错的替代方案,只是为应用的后期维护带来麻烦。

语法如下:

DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

参数说明:

control _value

试图处理的数值。可以是数据库中表的某一列,DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。

value1

是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应

result1

是一组成序偶的结果值。

default_result

未能与任何一个值匹配时,函数返回的默认值。

示例:

首先创建一张sale表,并插入一些测试数据:

create table class(id char(2),name varchar2(50), valid_flag char(1));

insert into class values('01','语文','Y');

insert into class values('02','数学','Y');

insert into class values('03','外语','N');

insert into class values('04','历史');

首先看一下decode函数的基本用法:

select id, name, decode(valid_flag, 'Y', '有效', 'N', '无效','未设置') from class;

ID NAME                                               DECODE(VALID_FLAG,'Y','有效','

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

01 语文                                               有效

02 数学                                               有效

03 外语                                               无效

04 历史                                               未设置

说明:

当valid_flag为’Y'时,则返回’有效’;

当month为’N'时,则返回’无效’;

其他则返回’未设置’。

以上的sql语句可以通过case实现:

select id, name, case valid_flag

when 'Y' then '有效'

when 'N' then '无效'

else '未设置' end

from class;

由以上sql语句可以看出,使用decode函数要简洁的多。

另外,还可以在Order by中使用decode:

例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。

select * from table_subject order by decode(subject_name, ‘语文’, 1, ‘数学’, 2, , ‘外语’,3)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值