论坛首页 编程语言技术论坛

oracle 行转列

浏览 1905 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-06-28  

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

使用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;
 

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

 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics