黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Oracle實(shí)現(xiàn)豎表轉(zhuǎn)橫表的幾種常用方法小結(jié)

oracle實(shí)現(xiàn)豎表轉(zhuǎn)橫表的幾種常用方法小結(jié)

有能耗表,記錄各個城市水、電、熱的能耗情況,表結(jié)構(gòu)如下:

名稱類型備注
e_codevarchar2(10)城市的code
e_valuenumber能耗值,包括水耗、電耗、熱耗
e_timevarchar2(20)時間
e_typenumber能耗類型,0:水耗,1:電耗,2:熱耗

插入測試數(shù)據(jù),如下:

e_codee_valuee_timee_type
bj20.052018-08-29 01:00:000
bj36.352018-08-29 01:00:001
bj45.2232018-08-29 01:00:002
sh22.952018-08-29 01:00:000
sh18.45562018-08-29 01:00:001
sh33.2542018-08-29 01:00:002
gz48.5542018-08-29 01:00:000
gz21.1122018-08-29 01:00:001
gz25.6252018-08-29 01:00:002

上面的表格是一張豎表,而我們想得到的是橫表,即行轉(zhuǎn)列,獲得如下結(jié)果

編號時間水耗電耗熱耗
sh2018-08-29 01:00:0022.9518.455633.254
gz2018-08-29 01:00:0048.55421.11225.625
bj2018-08-29 01:00:0020.0536.3545.223

實(shí)現(xiàn)豎表轉(zhuǎn)橫表的查詢,即行轉(zhuǎn)列,通常有兩種常用方法。

 

第一種:使用decode實(shí)現(xiàn)

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

輸出如下:

e_codee_timewater_energyele_energyheat_energy
sh2018-08-29 00:00:0022.9518.445633.2540
gz2018-08-29 00:00:0048.554021.112025.6250
bj2018-08-29 00:00:0020.0536.3545.2230

 

第二種:使用case when實(shí)現(xiàn)

簡單case when函數(shù):

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

輸出結(jié)果同上:

e_codee_timewater_energyele_energyheat_energy
sh2018-08-29 00:00:0022.9518.445633.2540
gz2018-08-29 00:00:0048.554021.112025.6250
bj2018-08-29 00:00:0020.0536.3545.2230

case when函數(shù)功能很強(qiáng)大、實(shí)用,使用起來也簡單易懂。在此篇文章詳細(xì)介紹:case when 用法詳解

關(guān)于oracle實(shí)現(xiàn)豎表轉(zhuǎn)橫表的幾種常用方法小結(jié)的文章就介紹至此,更多相關(guān)oracle 豎表轉(zhuǎn)橫表內(nèi)容請搜索碩編程以前的文章,希望以后支持碩編程

下一節(jié):oracle中row_number()over()函數(shù)用法實(shí)例講解

oracle數(shù)據(jù)庫

相關(guān)文章
學(xué)習(xí)SQL