本文摘自PHP中文网,作者小云云,侵删。
本文主要介绍了oracle中decode函数的使用方法示例,还是比较不错的,希望大家学完能掌握decode函数的使用,赶紧一起来看一下吧。decode的几种用法
1:使用decode判断字符串是否一样
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
含义为
IF 条件=值1 THEN
RETURN(value 1)
ELSIF 条件=值2 THEN
RETURN(value 2)
......
ELSIF 条件=值n THEN
RETURN(value 3)
ELSE
RETURN(default)
END IF
sql测试
1 |
|
输出结果
1 2 3 4 5 6 7 8 9 10 |
|
2:使用decode比较大小
select decode(sign(var1-var2),-1,var 1,var2) from dual
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
sql测试
1 |
|
输出结果
1 |
|
100-90=10>0 则会返回1,所以decode函数最终取值为90
反正
1 |
|
输出结果
1 |
|
100-90=10>0返回1,判断结果为1,返回第一个变量100,最终输出结果为100
3:使用decode函数分段
工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为低薪
sql测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
4:利用decode实现表或者试图的行列转换
sql测试
1 2 3 4 5 6 |
|
输出结果如下
1 2 |
|
5:使用decode函数来使用表达式来搜索字符串
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
sql测试
1 2 3 4 5 6 7 8 9 |
|
输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Decode函数在实际开发中非常的有用
结合Lpad函数,如何使主键的值自动加1并在前面补0
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis
eg:
select decode(dir,1,0,1) from a1_interval
dir 的值是1变为0,是0则变为1
比如我要查询某班男生和女生的数量分别是多少?
通常我们这么写:
select count(*) from 表 where 性别 = 男;
select count(*) from 表 where 性别 = 女;
要想显示到一起还要union一下,太麻烦了
用decode呢,只需要一句话
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表
eg:
1 2 3 |
|
大家学会了吗?赶紧动手尝试一下吧。
相关推荐:
php中json_decode函数要注意的问题
详解Oracle常用函数Trunc
Oracle 自定义split 函数实例详解
以上就是oracle中decode函数的如何使用的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
更多相关阅读请进入《oracle》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。