当前位置 : 主页 > 手机开发 > ROM >

行转列/列转行

来源:互联网 收集:自由互联 发布时间:2021-06-10
行转列: 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
网友评论