oracle行轉列經典實現 Oracle列轉行,行轉列?
Oracle列轉行,行轉列?oracle下可以用函數decode處理:select 產品名稱,sum(decode(季度,"第一季度",銷售額,0)) 第一季度銷售額,sum(decode(季度,"第
Oracle列轉行,行轉列?
oracle下可以用函數decode處理:
select 產品名稱,
sum(decode(季度,"第一季度",銷售額,0)) 第一季度銷售額,
sum(decode(季度,"第二季度",銷售額,0)) 第二季度銷售額,
sum(decode(季度,"第三季度",銷售額,0)) 第三季度銷售額,
sum(decode(季度,"第四季度",銷售額,0)) 第四季度銷售額,
from 表名
group by 產品名稱
Oracle實現行轉換成列的方法?
數據表示例:假設要將name值作為行,course值作為列,轉換后效果為:對應的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="數學") AS "數學",(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 "數學" THEN score END) AS "數學",SUM(CASE course WHEN "英語" THEN score END) AS "英語"FROM grade GROUP BY name
OracleSQL如何實現“可判斷的行轉列”的方法?
SQL*Loader是Oracle數據庫導入外部數據的一個工具。它和DB2的Load工具相似,但有更多的選擇,它支持變化的加載模式,可選的加載及多表加載。如何使用SQL*Loader工具我們可以用Oracle的sqlldr工具來導入數據。
oracle列名不確定,行轉列?
select decode(t.rn,1,t.單位名稱) as 單位名稱1 ,
decode(t.rn,2,t.單位名稱) as 單位名稱2,
decode(t.rn,3,t.單位名稱) as 單位名稱3,
from (
select c.單位名稱,to_number() over(partition by c.單位名稱) as rn
from table1 a,table2 b,table3 c
where a.id1 = b.id1
and b.id2=c.id2
) t
這是在知道多少行記錄數的情況下這樣實現,如果不知道多少行,則最好用個中間表,搞個語句塊,把相關的數先放到中間表在進行處理。
oracle查詢行轉列怎么寫?
推薦用WM_CONCAT函數 SELECT A.STD, WM_CONCAT(A.F3) NEW_RESUL FROM (SELECT STD, F3 FROM (SELECT STD, F1 F3 FROM TABLE_A UNION ALL SELECT STD, F2 F3 FROM TABLE_A) A) A GROUP BY A.STD
oracle動態(tài)的行轉列怎么搞?
用union all
假設列名分別為 col1 cola colb...
select col1,cola
from tabname
where ...
union all
select col1,colb
from tabname
where ...
union all
select col1,colc
from tabname
where ...
union all
select col1,cold
from tabname
where ...
union all
select col1,cole
from tabname
where ...
union all
select col1,colf
from tabname
where ...