我有一个包含两列的表。
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>
< AgencyCode>
<ID>b</ID>
<MCI_NUMB>11</MCI_NUMB>
</AgencyCode>
答案 0 :(得分:0)
您可能需要查看:
FOR 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,第二个将允许您透视数据
答案 1 :(得分:0)
您需要使用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');
看看这个link:它详细解释了如何将sql server操作为xml,反之亦然。