行转列/列转行
Posted bonniewss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行转列/列转行相关的知识,希望对你有一定的参考价值。
行转列:
select t.*, t.rowid from TEST1 t
ID C1 C2 C3
1 小红 数学 10
2 小红 语文 20
3 小栏 数学 15
4 小栏 语文 25
--test1
SELECT C1,to_char(WM_CONCAT(C2)) c2 FROM TEST1 group by c1
--结果:
C1 C2
小红 数学,语文
小栏 数学,语文
--test2
select c1, max(math) as math, max(yuwen) as yuwen
from (SELECT c1,
case
when c2 = ‘数学‘ then
c3
end as math,
case
when c2 = ‘语文‘ then
c3
end as yuwen
from test1)
group by c1
--结果:
C1 数学 语文
小红 10 20
小栏 15 25
--test3
select *
from (select c2, c3 from test1) pivot(sum(c3) for c2 in(‘数学‘, ‘语文‘))
--结果:
数学 语文
25 45
--test4
select *
from (select c1, c2,c3 from test1) pivot(max(c3) for c2 in(‘数学‘, ‘语文‘))
--结果:
C1 数学 语文
小红 10 20
小栏 15 25
以上是关于行转列/列转行的主要内容,如果未能解决你的问题,请参考以下文章