zoukankan      html  css  js  c++  java
  • 行转列/列转行

    行转列:

    select t.*, t.rowid from TEST1 t
     
    ID  C1    C2   C3
    1  小红  数学  10  
    2  小红  语文  20  
    3  小栏  数学  15  
    4 小栏 语文 25
     
    --test1
    oracle :  SELECT C1,to_char(WM_CONCAT(C2)) c2 FROM TEST1 group by c1
    mysql:    SELECT C1,GROUP_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
  • 相关阅读:
    分布式系统中的Session问题
    HotSpot VM运行时---命令行选项解析
    K大数查询
    [DarkBZOJ3636] 教义问答手册
    小朋友和二叉树
    [COCI2018-2019#2] Sunčanje
    小SY的梦
    [HDU6722 & 2019百度之星初赛四 T4] 唯一指定树
    [HDU6800] Play osu! on Your Tablet
    [NOI2007] 货币兑换
  • 原文地址:https://www.cnblogs.com/BonnieWss/p/10784903.html
Copyright © 2011-2022 走看看