我有一个与此表类似的表:
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/