oracle 行转列

行转列最简单通俗的方法:

使用sum、max等集合函数 包含如decode、"case when then end"或ifnull这样的条件语句,作为一列,

以此方法转换行为列。

 

以下是个实例(一张表里既存储了公司又存储了部门,当要同时显示出公司和部门,那就用到行转列了):

select proch.id ID,
       max(decode(bt.id, proch.sqrgsid, bt.bmmc,'')) 公司名称,
       max(decode(bt.id, proch.sqrbmid,  bt.bmmc,'')) 部门名称
  from T_LPROMIS_GYLGL_CGSQ proch, -- 采购
       t_lpromis_hr_bm      bt --部门
 where bt.id in (proch.sqrgsid, proch.sqrbmid)
 group by proch.id;
 

还有其他的方法,如使用存储过程什么滴,希望高手来讨论

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值