单行中的多个列值 [英] Multiple column values in a single row

查看:19
本文介绍了单行中的多个列值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的桌子

    ID    Status
     1    5
     1    6
     1    7
     2    5
     2    6
     2    7

我需要如下结果

     ID      col1    col2    col3
     1        5       6       7
     2        5       6       7

请帮帮我

推荐答案

SELECT  ID,
        MAX(CASE WHEN status = 5 THEN Status ELSE NULL END) col1,
        MAX(CASE WHEN status = 6 THEN Status ELSE NULL END) col2,
        MAX(CASE WHEN status = 7 THEN Status ELSE NULL END) col3
FROM    tableNAME
GROUP   BY ID

  • SQLFiddle 演示
  • 使用PIVOT

    SELECT *
    FROM   (
              SELECT ID, Status, CASE Status 
                                  WHEN 5 THEN 'Col1'
                                  WHEN 6 THEN 'Col2'
                                  WHEN 7 THEN 'Col3'
                                END Stat
              FROM tableName
            ) src
            PIVOT
            (
              MAX(Status)
              FOR Stat IN ([Col1],[Col2],[Col3])
            ) pivotTbl
    

    • SQLFiddle 演示
    • 这篇关于单行中的多个列值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆