Oracle查詢如何才能行轉列?-sunziren

  原創文章,轉載務必註明出處。sql


  今天工做的時候,碰到一個問題,涉及oracle行轉列,用了半小時解決,所以在這裏寫個博客記錄一下解決辦法。數據庫

  原數據庫表的數據是:oracle

  

   想要達到的效果是:函數

  

   通過思考,這是一個oracle行轉列的操做,根據xn,qxdm,nj這三列值來分組查詢全部的數據,把xn,qxdm,nj三列相同的數據看爲一行。spa

  在百度上找了半小時sql,本身又調試了半個小時,終於把這個效果實現了,sql以下:調試

 1 select * from (select xn,qxdm,nj,xk,gxsj,cbbb from test) t pivot(
 2     max(t.cbbb) for xk in (
 3         '道德與法制' as 道德與法制,
 4         '語文' as 語文,
 5         '數學' as 數學,
 6         '音樂' as 音樂,
 7         '美術' as 美術,
 8         '科學' as 科學,
 9         '英語' as 英語,
10         '書法' as 書法,
11         '信息技術' as 信息技術
12     ) ) where 1=1

  核心是利用了oracle的pivot函數,問題至此解決,寫下次過程以便他人蔘考。code


  原創文章,轉載務必註明出處。blog

相關文章
相關標籤/搜索