我有一个类似于这里的表:
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,EventId