0

私は従業員テーブルを持っています。そのテーブルの各行を XML に変換したい

select d = 
     (select a.* for xml path('Root'), type, elements absent)
from MyEmployees a

以下が結果です

行 1:

<Root>
    <EmployeeID>1</EmployeeID>
    <FirstName>Ken</FirstName>
    <LastName>Sánchez</LastName>
    <Title>Chief Executive Officer</Title>
    <DeptID>16</DeptID>
</Root>

行 2:

<Root>
    <EmployeeID>16</EmployeeID>
    <FirstName>David</FirstName>
    <LastName>Bradley</LastName>
    <Title>Marketing Manager</Title>
    <DeptID>4</DeptID>
    <ManagerID>273</ManagerID>
</Root>

結果は以下の形式のようになります

<Root>
    <Item Name="FirstName" type="String">Ken</Item>
    <Item Name="LastName" type="String">Sánchez</Item>
</Root>

注: タイプは、DeptId の Int である必要があります。

SQL クエリはどのように記述すればよいですか?

以下のクエリを試しました:

SELECT EmployeeID
      ,( SELECT firstname AS '@FirstName',lastname AS '@LastName' FROM MyEmployees AS b WHERE a.EmployeeID= b.EmployeeID FOR XML PATH('Employee') ) AS RowXML
FROM  MyEmployees AS a

次のように結果を取得します。

1   <Employee FirstName="Ken" LastName="Sánchez"/>

4

1 に答える 1