Oracle数据库Decode()函数的使用方法
来源:互联网 发布:淘宝咸鱼 编辑:程序博客网 时间:2024/05/17 20:09
[摘要] DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。
[关键字] Oracle Decode()
[关键字] Oracle Decode()
DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
区别于SQL的其它函数,DECODE函数还能识别和操作空值。
语法如下:
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
在需要比较2个值的时候,我们可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
同样,也可以用CASE实现:
SELECT CASE SIGN(5 - 6)
WHEN 1 THEN 'Is Positive'
WHEN -1 THEN 'Is Nagative'
ELSE 'Is Zero' END
FROM DUAL
另外,大家还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
区别于SQL的其它函数,DECODE函数还能识别和操作空值。
语法如下:
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
在需要比较2个值的时候,我们可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
同样,也可以用CASE实现:
SELECT CASE SIGN(5 - 6)
WHEN 1 THEN 'Is Positive'
WHEN -1 THEN 'Is Nagative'
ELSE 'Is Zero' END
FROM DUAL
另外,大家还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
具体使用例子:
1、固定列数的行列转换如
student subject grade
---------------------------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
......
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
......
语句如下:
2、不定列行列转换如
c1 c2
--------------
1 我
1 是
1 谁
2 知
2 道
3 不
......
转换为
1 我是谁
2 知道
3 不
这一类型的转换必须借助于PL/SQL来完成,这里给一个例子
- Oracle数据库Decode()函数的使用方法
- Oracle数据库Decode()函数的使用方法
- Oracle数据库Decode()函数的使用方法
- Oracle数据库Decode()函数的使用方法
- Oracle数据库Decode()函数的使用方法
- Oracle数据库Decode()函数的使用方法
- Oracle数据库 Decode()函数使用方法详解
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- oracle decode函数使用方法
- 【转】oracle decode函数使用方法
- sql server 2000 示例数据库 Northwind 全库脚本 SQLServer2000 自带数据库
- extsharp、ExtAspNet、Coolite和EXTJS在Aap.Net中使用之我见
- An Efficient Representation for Irradiance Environment Maps
- 【软件测试自动化-QTP系列讲座 23】 == QTP中API的应用 ==
- 两个分页存储过程的效率比较(均为多表查询)
- Oracle数据库Decode()函数的使用方法
- Hp-ux之关机
- 详解CSS优先级规则的级别与细节
- 最易“动心”的四种时间
- JAVASCRIPT 自定义onchange事件
- 在WPS 和 Word 2003 中使用多级编号
- JavaScript:文本框长度限制20个字节,中文位2个字节
- 看看经典的寓言,审视一下自己的状态
- ASP.NET URL重写做法