oracle 11g的行轉列、列轉行
oracle10g中行轉列比較麻煩,需要寫很多個decode,在11g中
使用以下語法就可以行轉列、列轉行,測試語句如下:
--行轉列
with
a
as
(
select '4_20110417' ci,'A' ab,1 num from dual
union all
select '4_20110417','B',2 from dual
union all
select '5_20110417','A',1 from dual
union all
select '5_20110417','B',4 from dual
)
select *
from a
pivot
(
sum(num)
for ab in('A','B')
)
/*
4_20110417 1 2
5_20110417 1 4
*/
--列轉行
with
a
as
(
select '4_20110417' ci,1 a ,2 b from dual
union all
select '5_20110417' ,1,4 from dual
)
select ci,bc,bb from a
unpivot
(
bb
for bc in (a,b)
)
/*
4_20110417 A 1
4_20110417 B 2
5_20110417 A 1
5_20110417 B 4
*/
使用以下語法就可以行轉列、列轉行,測試語句如下:
--行轉列
with
a
as
(
select '4_20110417' ci,'A' ab,1 num from dual
union all
select '4_20110417','B',2 from dual
union all
select '5_20110417','A',1 from dual
union all
select '5_20110417','B',4 from dual
)
select *
from a
pivot
(
sum(num)
for ab in('A','B')
)
/*
4_20110417 1 2
5_20110417 1 4
*/
--列轉行
with
a
as
(
select '4_20110417' ci,1 a ,2 b from dual
union all
select '5_20110417' ,1,4 from dual
)
select ci,bc,bb from a
unpivot
(
bb
for bc in (a,b)
)
/*
4_20110417 A 1
4_20110417 B 2
5_20110417 A 1
5_20110417 B 4
*/
with
a
as
(
select 'a' CITY1, 'b' CITY2 from dual
union all
select 'a' , 'c' from dual
)
a
as
(
select 'a' CITY1, 'b' CITY2 from dual
union all
select 'a' , 'c' from dual
)
SELECT CITY1, LISTAGG(a.CITY2,';') WITHIN GROUP (order by a.CITY2 desc) as CITY2_list
FROM a
GROUP BY a.CITY1;
FROM a
GROUP BY a.CITY1;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25323853/viewspace-692841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 列轉行Oracle
- oracle列轉行Oracle
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- SQL 行轉列,列轉行SQL
- Mysql - 行轉列、列轉行MySql
- oracle行列轉換-行轉列Oracle
- oracle行列轉換-列轉行Oracle
- sql的行轉列(PIVOT)與列轉行(UNPIVOT)SQL
- Oracle行轉列的函式Oracle函式
- oracle中多列轉行Oracle
- Oracle行轉列函式Oracle函式
- Oracle 11g Pivot函式實現行轉列Oracle函式
- hive經典案列--top N(行轉列\列轉行)Hive
- Oracle 行轉列的sql語句OracleSQL
- Oracle 11g使用UNPIVOT函式實現“列轉行”Oracle函式
- SQL列轉行SQL
- mysql列轉行MySql
- postgresql 列轉行SQL
- mysql 行轉列MySql
- UltraEdit 列操作及列轉行
- 行轉列的應用
- 動態行轉列
- SQL 列行轉換SQL
- DB2行列轉置之行轉列DB2
- oracle行轉列、列轉行、連續日期數字實現方式及mybatis下實現方式OracleMyBatis
- Oracle 11g 新聚集函式listagg實現列轉行Oracle函式
- 使用Oracle 11g函式Pivot實現資料聚合行轉列Oracle函式
- Hive行轉列函式Hive函式
- 動態固定行轉列
- mysql基礎 行轉列MySql
- Kettle實現行轉列
- sql實現行轉列SQL
- Databricks 第11篇:Spark SQL 查詢(行轉列、列轉行、Lateral View、排序)SparkSQLView排序
- 一個行轉列的應用
- 行列轉換,列行轉換統計
- 老生常談SQL2005語句實現行轉列,列轉行SQL
- 分隔字串實現列轉行字串
- 行轉列的一種優化思路優化