- RAW
- AUTO
- PATH
- EXPLICIT
RAW produces 1 line per record.
SELECT TOP 3 BusinessEntityID, FirstName, MiddleName, LastName FROM Person.Person ORDER BY BusinessEntityID FOR XML RAW;
AUTO on it's own lists columns as attributes|
|
|
SELECT TOP 3 BusinessEntityID, FirstName, MiddleName, LastName FROM Person.Person ORDER BY BusinessEntityID FOR XML AUTO;
AUTO, ELEMENTS makes each column an element.
SELECT TOP 3 BusinessEntityID, FirstName, MiddleName, LastName FROM Person.Person ORDER BY BusinessEntityID FOR XML AUTO, ELEMENTS;
XML PATH1 Ken J Sánchez 2 Terri Lee Duffy 3 Roberto Tamburello
SELECT TOP 3 BusinessEntityID, FirstName, MiddleName, LastName FROM Person.Person ORDER BY BusinessEntityID FOR XML PATH('Donkey');
1 Ken J Sánchez 2 Terri Lee Duffy 3 Roberto Tamburello
For XML EXPLICIT to work, the first 2 columns must be Tag and Parent.
Need to UNION ALL a header row to the data.
SELECT 1 AS Tag ,NULL AS Parent ,ProductCategoryID as [Category!1!ID] ,Name AS [Category!1!Name] ,NULL AS [Subcategory!2!Name] -- Placeholder for Subcategory.Name FROM Production.ProductCategory UNION ALL SELECT 2 AS Tag ,1 AS Parent ,s.ProductSubcategoryID ,c.Name -- (1) Placeholder for Category.Name. (2) Category.Name is needed for ORDER BY ,s.Name FROM Production.ProductSubcategory s, Production.ProductCategory c WHERE c.ProductCategoryID = s.ProductCategoryID ORDER BY [Category!1!Name], [Subcategory!2!Name] FOR XML EXPLICIT
Links
Simple Talk : Using the FOR XML Clause
No comments:
Post a Comment