oracle行轉(zhuǎn)列pivot動態(tài) Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?
Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?oracle下可以用函數(shù)decode處理:select 產(chǎn)品名稱,sum(decode(季度,"第一季度",銷售額,0)) 第一季度銷售額,sum(decode(季度,"第
Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?
oracle下可以用函數(shù)decode處理:
select 產(chǎn)品名稱,
sum(decode(季度,"第一季度",銷售額,0)) 第一季度銷售額,
sum(decode(季度,"第二季度",銷售額,0)) 第二季度銷售額,
sum(decode(季度,"第三季度",銷售額,0)) 第三季度銷售額,
sum(decode(季度,"第四季度",銷售額,0)) 第四季度銷售額,
from 表名
group by 產(chǎn)品名稱
oracle這種數(shù)據(jù)pivot或者其他怎么將key做字段str作為值來行轉(zhuǎn)列(str值是字符串?
SELECT*FROM(SELECTkey,strFROMtablet)pivot(max(str)forkeyin("hyl","ls","ryhl","yqwd"))
Oracle實現(xiàn)行轉(zhuǎn)換成列的方法?
數(shù)據(jù)表示例:假設(shè)要將name值作為行,course值作為列,轉(zhuǎn)換后效果為:對應(yīng)的SQL如下:方法1:使用表連接SELECT DISTINCT a.name,(SELECT score FROM grade b WHEREa.name=b.name AND b.course="語文") AS "語文",(SELECT score FROM grade b WHEREa.name=b.name AND b.course="數(shù)學(xué)") AS "數(shù)學(xué)",(SELECT score FROM grade b WHEREa.name=b.name AND b.course="英語") AS "英語"FROM grade a方法2:使用分組SELECT name,SUM(CASE course WHEN "語文" THEN score END) AS "語文",SUM(CASE course WHEN "數(shù)學(xué)" THEN score END) AS "數(shù)學(xué)",SUM(CASE course WHEN "英語" THEN score END) AS "英語"FROM grade GROUP BY name
sql怎樣將行的值變?yōu)榱校?/h2>
你這是Oracle數(shù)據(jù)庫,給你看看我寫的:
列轉(zhuǎn)行
錄入經(jīng)營范圍時候會遇到列傳行的問題解決方案如下:
在temp1 表有一下字段內(nèi)容:
一條sql轉(zhuǎn)化列傳行效果
select a,zj,zjname from temp1 unpivot(zjname for zj in(b,c,d,e,f,g,h,i,j))
行轉(zhuǎn)列:
select * from tbname
行轉(zhuǎn)列之后的數(shù)據(jù):
select pud, listagg(ud, ",") within group(order by null) as ud
from tbname
group by pud