decode函数和if函数、case when函数有类似之处。行列转换同case when,,但是更加简洁。
decode函数使用简介链接:https://blog.csdn.net/weeknd/article/details/71157044
create table fruit
(imonth varchar2(10),ename varchar2(10),
sale number);
--drop table fruit;
insert into fruit values('1月','杨梅',11);
insert into fruit values('1月','蓝莓',22);
insert into fruit values('1月','樱桃',33);
insert into fruit values('2月','杨梅',111);
insert into fruit values('2月','蓝莓',222);
insert into fruit values('2月','樱桃',333);
select imonth,
decode(ename,'杨梅',sale,null) 杨梅,
decode(ename,'蓝莓',sale,null) 蓝莓,
decode(ename,'樱桃',sale,null) 樱桃
from fruit;
select imonth,
max(decode(ename,'杨梅',sale,null)) 杨梅,
max(decode(ename,'蓝莓',sale,null)) 蓝莓,
max(decode(ename,'樱桃',sale,null)) 樱桃
from fruit
group by imonth;
select decode(ename,'杨梅','o1','蓝莓','o2','樱桃','o3',null) from fruit;