我有一个与此表类似的表:

SetId       AppCode       AppEventId       EventId       FieldId       ValueData
2012/2013     1000         361616             16            1            UNI
2012/2013     1000         361616             16            2            Isolation
2012/2013     1000         361616             16            3            DN
2012/2013     1050         378194             16            1            BUL
2012/2013     1050         378194             16            2            Isolation
2012/2013     1050         378194             16            3            RD

当它们具有相同的AppCode时,我希望能够合并所有这些数据。

看起来像这样:
SetId       AppCode       AppEventId       EventId       ValueData1      ValueData2      ValueData3
2012/2013     1000         361616             16            UNI            Isolation        DN
2012/2013     1050         378194             16            BUL            Isolation        RD

最佳答案

试试这个

  SELECT SetId, AppCode, AppEventId, EventId
  ,max(CASE WHEN FieldId = 1 THEN ValueData END) AS ValueData1
  ,max(CASE WHEN FieldId = 2 THEN ValueData END) AS ValueData2
  ,max(CASE WHEN FieldId = 3 THEN ValueData END) AS ValueData3
   FROM Table_Name
   GROUP BY SetId,AppCode,AppEventId,EventId

关于SQL-将多行数据合并为单行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16056529/

10-11 02:43
查看更多