decode的使用
1、替换值
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
select t.id,t.name,t.age,
decode(t.sex, '1', '男生', '2', '女生', '其他') as sex
from TABLE t
2、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
3、decode分段
select name,sal,
decode(sign(sal - 5000),1,'高薪',0,'高薪',-1,decode(sign(sal - 3000), 1, '中等', 0, '中等', -1, '低薪')) as salname
from person;
4、此函数用在SQL语句中,功能介绍如下:
比如我要查询某班男生和女生的数量分别是多少?
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表
5、order by对字符列进行特定的排序
要求按照:语、数、外的顺序进行排序。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, '外语',3)
6、判断是否为空
需求:性别为空显示“暂无数据”,不为空原样输出
select t.id,t.name,t.age,decode(t.sex,NULL,'暂无数据',t.sex) as sex from STUDENT2 t