行转列: 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 小红 数学,语文 小
行转列:
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