以适当的格式获取数据

时间:2014-04-30 18:54:53

标签: sql sql-server xml tsql sql-server-2012

我有一个包含两列的表。

 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>

2 个答案:

答案 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,反之亦然。