您好,登錄后才能下訂單哦!
這篇文章主要介紹“Oracle怎么實(shí)現(xiàn)豎表轉(zhuǎn)橫表”,在日常操作中,相信很多人在Oracle怎么實(shí)現(xiàn)豎表轉(zhuǎn)橫表問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”O(jiān)racle怎么實(shí)現(xiàn)豎表轉(zhuǎn)橫表”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
有能耗表,記錄各個(gè)城市水、電、熱的能耗情況,表結(jié)構(gòu)如下:
名稱 | 類型 | 備注 |
---|---|---|
E_CODE | VARCHAR2(10) | 城市的CODE |
E_VALUE | NUMBER | 能耗值,包括水耗、電耗、熱耗 |
E_TIME | VARCHAR2(20) | 時(shí)間 |
E_TYPE | NUMBER | 能耗類型,0:水耗,1:電耗,2:熱耗 |
插入測(cè)試數(shù)據(jù),如下:
E_CODE | E_VALUE | E_TIME | E_TYPE |
---|---|---|---|
BJ | 20.05 | 2018-08-29 01:00:00 | 0 |
BJ | 36.35 | 2018-08-29 01:00:00 | 1 |
BJ | 45.223 | 2018-08-29 01:00:00 | 2 |
SH | 22.95 | 2018-08-29 01:00:00 | 0 |
SH | 18.4556 | 2018-08-29 01:00:00 | 1 |
SH | 33.254 | 2018-08-29 01:00:00 | 2 |
GZ | 48.554 | 2018-08-29 01:00:00 | 0 |
GZ | 21.112 | 2018-08-29 01:00:00 | 1 |
GZ | 25.625 | 2018-08-29 01:00:00 | 2 |
上面的表格是一張豎表,而我們想得到的是橫表,即行轉(zhuǎn)列,獲得如下結(jié)果
編號(hào) | 時(shí)間 | 水耗 | 電耗 | 熱耗 |
---|---|---|---|---|
SH | 2018-08-29 01:00:00 | 22.95 | 18.4556 | 33.254 |
GZ | 2018-08-29 01:00:00 | 48.554 | 21.112 | 25.625 |
BJ | 2018-08-29 01:00:00 | 20.05 | 36.35 | 45.223 |
實(shí)現(xiàn)豎表轉(zhuǎn)橫表的查詢,即行轉(zhuǎ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_CODE | E_TIME | WATER_ENERGY | ELE_ENERGY | HEAT_ENERGY |
---|---|---|---|---|
SH | 2018-08-29 00:00:00 | 22.95 | 18.4456 | 33.2540 |
GZ | 2018-08-29 00:00:00 | 48.5540 | 21.1120 | 25.6250 |
BJ | 2018-08-29 00:00:00 | 20.05 | 36.35 | 45.2230 |
簡(jiǎ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_CODE | E_TIME | WATER_ENERGY | ELE_ENERGY | HEAT_ENERGY |
---|---|---|---|---|
SH | 2018-08-29 00:00:00 | 22.95 | 18.4456 | 33.2540 |
GZ | 2018-08-29 00:00:00 | 48.5540 | 21.1120 | 25.6250 |
BJ | 2018-08-29 00:00:00 | 20.05 | 36.35 | 45.2230 |
到此,關(guān)于“Oracle怎么實(shí)現(xiàn)豎表轉(zhuǎn)橫表”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。