ELEMENTS
让 FOR XML RAW 为结果中的每一列都生成一个 XML 元素,而不是生成一个属性。如果有 NULL 值,生成的 XML 文档中就会忽略该元素。以下查询会生成 <EmployeeID> 元素和 <DepartmentName> 元素:
SELECT Employees.EmployeeID, Departments.DepartmentName
FROM Employees JOIN Departments
ON Employees.DepartmentID=Departments.DepartmentID
FOR XML RAW, ELEMENTS;
此查询会得到以下结果:
<row>
<EmployeeID>102</EmployeeID>
<DepartmentName>R & D</DepartmentName>
</row>
<row>
<EmployeeID>105</EmployeeID>
<DepartmentName>R & D</DepartmentName>
</row>
<row>
<EmployeeID>160</EmployeeID>
<DepartmentName>R & D</DepartmentName>
</row>
<row>
<EmployeeID>243</EmployeeID>
<DepartmentName>R & D</DepartmentName>
</row>
...
结果的顺序取决于优化程序所选择的计划,除非您以其它方式请求。如果您希望结果按某种特定顺序显示,必须在查询中加入 ORDER BY 子句,例如:
SELECT Employees.EmployeeID, Departments.DepartmentName
FROM Employees JOIN Departments
ON Employees.DepartmentID=Departments.DepartmentID
ORDER BY EmployeeID
FOR XML RAW;
SELECT Employees.EmployeeID, Departments.DepartmentName
FROM Employees JOIN Departments
ON Employees.DepartmentID=Departments.DepartmentID
FOR XML RAW;
返回以下 XML 文档:
<row EmployeeID="102" DepartmentName="R & D"/>
<row EmployeeID="105" DepartmentName="R & D"/>
<row EmployeeID="160" DepartmentName="R & D"/>
<row EmployeeID="243" DepartmentName="R & D"/>
...