行转列之decode

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;


--需要配合聚合函数使用,max()。完成行转列。
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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值