文章詳情頁
Oracle實現豎表轉橫表的幾種常用方法小結
瀏覽:104日期:2023-05-30 16:13:51
目錄
- 第一種:使用decode實現
- 第二種:使用case when實現
有能耗表,記錄各個城市水、電、熱的能耗情況,表結構如下:
插入測試數據,如下:
上面的表格是一張豎表,而我們想得到的是橫表,即行轉列,獲得如下結果
實現豎表轉橫表的查詢,即行轉列,通常有兩種常用方法。
第一種:使用decode實現
SELECT E_CODE, E_TIME, SUM( DECODE(E_TYPE, 0, E_VALUE) ) AS WATER_ENERGY,--水耗 SUM( DECODE(E_TYPE, 1, E_VALUE) ) AS ELE_ENERGY,--電耗 SUM( DECODE(E_TYPE, 2, E_VALUE) ) AS HEAT_ENERGY--熱耗 FROM THTF_ENERGY_TEST GROUP BY E_CODE,E_TIME
輸出如下:
第二種:使用case when實現
簡單case when函數:
SELECT E_CODE, E_TIME, SUM( CASE E_TYPE WHEN 0 THEN E_VALUE ELSE 0 END ) AS WATER_ENERGY,--水耗 SUM( CASE E_TYPE WHEN 1 THEN E_VALUE ELSE 0 END ) AS ELE_ENERGY,--電耗 SUM( CASE E_TYPE WHEN 2 THEN E_VALUE ELSE 0 END ) AS HEAT_ENERGGY--熱耗 FROM THTF_ENERGY_TEST GROUP BY E_CODE,E_TIME
輸出結果同上:
CASE WHEN函數功能很強大、實用,使用起來也簡單易懂。在此篇文章詳細介紹:CASE WHEN 用法詳解
到此這篇關于Oracle實現豎表轉橫表的幾種常用方法小結的文章就介紹到這了,更多相關Oracle 豎表轉橫表內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
標簽:
Oracle
排行榜
