Oracle 數(shù)據(jù)顯示 橫表轉(zhuǎn)縱表
更新時間:2009年07月25日 10:56:47 作者:
橫表轉(zhuǎn)縱表亦可用與decode意義相似的case語句實現(xiàn),原理同該語句,這里不再過多描述。
1.建表
-- Create table
create table test
(
dm1 char(3),
dm2 char(3),
mc1 nvarchar2(20),
val nvarchar2(20)
)
select dm1,dm2,sum(decode(mc1,'c1',val)) c1,sum(decode(mc1,'c2',val)) c2,sum(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2
注:該語句是在val為數(shù)值的情況下的執(zhí)行方法,如果val不為數(shù)值型,或者包含字符串等類型的話,運用sum會報錯,這里可以采用另外一個方法,將sum改為max即可,語句如下:
select dm1,dm2,max(decode(mc1,'c1',val)) c1,max(decode(mc1,'c2',val)) c2,max(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2
此外,橫表轉(zhuǎn)縱表亦可用與decode意義相似的case語句實現(xiàn),原理同該語句,這里不再過多描述。
復(fù)制代碼 代碼如下:
-- Create table
create table test
(
dm1 char(3),
dm2 char(3),
mc1 nvarchar2(20),
val nvarchar2(20)
)
2.填入數(shù)據(jù)如下:
DM1 | DM2 | MC1 | VAL |
101 | 1 | c1 | 100 |
101 | 1 | c2 | 80 |
101 | 1 | c3 | 40 |
101 | 2 | c1 | 30 |
101 | 2 | c2 | 80 |
102 | 4 | c1 | 9 |
102 | 6 | c2 | 50 |
轉(zhuǎn)換后數(shù)據(jù)顯示如下:
DM1 | DM2 | c1 | c2 | c3 |
101 | 1 | 100 | 80 | 40 |
101 | 2 | 30 | 80 | |
102 | 4 | 9 | ||
102 | 6 | 50 |
3.轉(zhuǎn)換語句:
復(fù)制代碼 代碼如下:
select dm1,dm2,sum(decode(mc1,'c1',val)) c1,sum(decode(mc1,'c2',val)) c2,sum(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2
注:該語句是在val為數(shù)值的情況下的執(zhí)行方法,如果val不為數(shù)值型,或者包含字符串等類型的話,運用sum會報錯,這里可以采用另外一個方法,將sum改為max即可,語句如下:
復(fù)制代碼 代碼如下:
select dm1,dm2,max(decode(mc1,'c1',val)) c1,max(decode(mc1,'c2',val)) c2,max(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2
此外,橫表轉(zhuǎn)縱表亦可用與decode意義相似的case語句實現(xiàn),原理同該語句,這里不再過多描述。
相關(guān)文章
WMware redhat 5 oracle 11g 安裝方法
本文將詳細(xì)介紹WMware中redhat 5 安裝oracle 11g方法,需要的朋友可以參考下2012-12-12如何實現(xiàn)只授予用戶查看存儲過程定義的權(quán)限
本文對如何授予某個用戶只能查看某些存儲過程的定義權(quán)限,而不能讓用戶去修改、執(zhí)行存儲過程,進行了梳理和總結(jié),供大家參考。2015-09-09And,Where使用提示以及用+進行左關(guān)聯(lián)的提示及注意事項
先左關(guān)聯(lián)后在過濾假如關(guān)聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的,也就是說用+進行左關(guān)聯(lián)沒有用leftjoin靈活待后續(xù)看是否有什么好的解決方案2013-02-02安裝oracle11g INS-30131執(zhí)行安裝程序驗證所需的初始設(shè)置失敗的解決方法
這篇文章主要為大家詳細(xì)介紹了安裝oracle11g INS-30131執(zhí)行安裝程序驗證所需的初始設(shè)置失敗的解決方法,感興趣的小伙伴們可以參考一下2016-07-07VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程(二)ORACLE 10.2.05版本的升級補丁安裝
這篇文章是VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程系列的第二篇,主要介紹了ORACLE 10.2.05版本的升級補丁安裝,需要的朋友可以參考下2014-08-08Oracle定義DES加密解密及MD5加密函數(shù)示例
本節(jié)主要介紹了Oracle中定義DES加密解密及MD5加密函數(shù),感興趣的朋友可以參考下2014-08-08