Получение данных в соответствующем формате

У меня есть таблица, которая содержит два столбца.

Agency Code MCI Numb
----------------------------
 a 1234 
 a 12345
 b 11

Мне нужно написать запрос в SQl, чтобы он предоставил данные в следующем формате.

< AgencyCode>
 <id>a</id>
 <mci_numb>1234</mci_numb>
 <mci_numb>12345</mci_numb>

< AgencyCode>
 <id>b</id>
 <mci_numb>11</mci_numb>
2 ответа

Вам нужно будет использовать запросы FOR XML/XPATH.

Попробуйте что-то вроде этого:

SELECT ID
 , CAST(MCI_Numb AS xml).query('/') AS MCI_Numbs
 FROM(SELECT DISTINCT ID
 , (SELECT MCI_Numb
 FROM myTable
 WHERE ID = T.ID
 FOR XML PATH(''))AS MCI_Numb
 FROM myTable AS T)AS T2
 FOR XML PATH ('AgencyCode');

Взгляните на эту ссылку: она подробно объясняет, как манипулировать сервером sql в xml и наоборот.


Вероятно, вам нужно взглянуть на:

ДЛЯ XML: http://technet.microsoft.com/en-us/library/ms177410(v=SQL.105).aspx

а также

PIVOT: http://technet.microsoft.com/en-us/library/ms177410(v=SQL.105).aspx

Первый позволит вам вернуть xml, второй позволит вам сворачивать ваши данные

licensed under cc by-sa 3.0 with attribution.