2016-04-21 5 views
3

ich eine Tabellenstruktur wie unten haben:Wie Konvertieren von Tabellendaten in XML Format SQL mit mehreren Unterknoten mit

SELECT 
    [EmpID], [EmpName], 
    [DeptName], 
    [BirthDate] 
FROM 
    [dbo].[Employees] 

ich diese Tabellendaten in XML konvertiert werden soll und die endgültige Ausgabe wie unten sein wird:

<Employees> 
    <Department DeptName="ABC"> 
     <Employee EmpID="1"> 
      <EmpName>Davolio</EmpName> 
      <BirthDate>10/12/1989</BirthDate> 
     </Employee> 
     <Employee EmpID="2"> 
      <EmpName>Andrew</EmpName>  
      <BirthDate>05/02/1985</BirthDate> 
     </Employee> 
    </Department> 
    <Department DeptName="DEF"> 
     <Employee EmpID="3"> 
      <EmpName>David</EmpName> 
      <BirthDate>11/09/1982</BirthDate> 
     </Employee> 
    </Department>`enter code here 
</Employees> 

Antwort

3

Versuchen Sie, diese

SELECT [DeptName] 
     ,( SELECT [EmpID], 
        [EmpName], 
        [BirthDate] 
      FROM @table E 
      WHERE E.DeptName = D.DeptName 
      FOR XML PATH ('Employee'),TYPE 
     ) 
FROM @table D 
GROUP BY [DEPTNAME] 
FOR XML PATH ('Department'),type,ROOT('Employees') 
+1

Dank Abdul seine arbeiten groß .. –

+0

@saiv Ein winziger Hinweis: Wenn Sie auf h wollen Haben Sie die Attribute 'DeptName' und 'EmpID' als Attribute (wie im Beispiel), müssen Sie einen Alias ​​'AS [@DeptName]' bzw. 'AS [@EmpID]'. Beachten Sie, dass XML die ISO8601 verwendet und das Datum daher wie folgt aussehen wird: 1982-09-11T00: 00: 00 – Shnugo

Verwandte Themen