Oracle的列转行问题
生活随笔
收集整理的這篇文章主要介紹了
Oracle的列转行问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Oracle的列轉行問題 Oracle中使用語句將行數據轉換稱不同的列表示,或者將不同的列數據寫到同一列的不同行上的行列轉換問題是一個非常傳統的話題。 網絡上流傳了很多將行數據轉換稱列數據的方法和應用實例,一般通過decode或者case函數與聚合函數聯合實現功能,這里就不再重復。 日前本人在一個偶然的應用中用到了一個需要將列數據轉換為行數據的問題。搜索了很久沒有發現很合適的方法。網絡一般推薦使用union all實現。這樣的一個重要問題在于會造成對數據表的重復訪問,性能是個重要問題。 基于此,作者設想了另外一種實現可能性。實踐證明,這種方法有效提供了查詢性能。 create table f_distribution( f1 varchar2(200), qty1 int, qty2 int, qty3 int ); insert into f_distribution(f1,qty1,qty2,qty3) values('zhanglei',1,2,3); insert into f_distribution(f1,qty1,qty2,qty3) values('lixian',1,2,3); insert into f_distribution(f1,qty1,qty2,qty3) values('zhoubin',1,2,3); insert into f_distribution(f1,qty1,qty2,qty3) values('zhengtong',1,2,3); select * from f_distribution select a.f1,b.fid, decode(b.fid,'數據1',a.qty1, '數據2',a.qty2, '數據3',a.qty3 ) from f_distribution a, ( select '數據1' fid from dual union all select '數據2' fid from dual union all select '數據3' fid from dual? ) b 本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/47522341/archive/2009/02/07/3867353.aspx
轉載于:https://blog.51cto.com/77857/172132
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Oracle的列转行问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: foxpro:将表写入excel
- 下一篇: VC++ 6.0 与VS2008 C++