oracle decode函数使用方法
的有关信息介绍如下:DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。
首先,讲一下decode的基本语法,decode使用起来非常的灵活,格式如下:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值),中间的值可以无限写,类似于 case 条件 when 值1 then 返回值1 when 值2 then 返回值2 default 缺省值
效果如下所示
有了这个函数,就免去了我们在写sql的时候需要写很多个case when,非常省事,以上sql如果用case when 写的话如下所示,效果是一样的。
为了方便大家的理解,我这里创建个表,插入几条数据,来看看实际的效果。
sql如下:
create table Test(NAME varchar(10),SEX varchar(10),DEPT varchar(10));insert into Test values('张三','M','001');insert into Test values('李四','F','001');insert into Test values('王五','M','002');insert into Test values('赵六','F','003');
insert into Test values('孙七','F','004');
如果我们想取出来这些数据,同时把性别和部门的编号改成汉字,通常的写法是通过case when 实现,如下所示:
select NAME,case SEX when 'M' then '男' when 'F' then '女' end Sex,case DEPT when '001' then 'A部门' when '002' then 'B部门' when '003' then 'C部门' else '默认部门' end Dept from Test;
是不是很麻烦,需要写两行sql,如果换成decode就简单很多,一行sql就可以了。
select NAME,decode(SEX,'M','男','F','女'),decode(DEPT,'001','A部门','002','B部门','003','C部门','默认部门') from Test;
以上就是decode的详细用法,希望对你有所帮助。