行转列最简单通俗的方法:
使用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;
还有其他的方法,如使用存储过程什么滴,希望高手来讨论