SQL Server中的FOR XML语法为表转化为XML提供了很好的支持,当然使用同样的程序语言也能够达到同样的效果,但是有了FOR XML将使得这一切更加的方便。
SELECT的查询结果会作为行集返回,但是你同样可以在SQL中指定FOR XML子句使得查询作为XML来检索。在FOR XML子句中,可以指定以下模式之一:RAW 、AUTO、EXPLICIT和PATH。
下面是一个使用FOR XML PATH将员工表关联部门表的实例。
员工表(Emplayee),字段:EmplayeeId、EmplayeeName、DepartmentId。
部门表(Department),字段:DepartmentId、DepartmentName。
将员工表中的的名称字段拼接并关联到部门表中(如图1)。
如图1
SELECT Dep.DepartmentId, Dep.DepartmentName,Emp.EmplayeeList
FROM Department AS Dep
INNER JOIN (SELECT DISTINCT DepartmentId,EmplayeeList = STUFF((SELECT '、' + EmplayeeName FROM Emplayee WHERE DepartmentId = T.DepartmentId FOR XML PATH('')),1,1,'')
FROM Emplayee AS T GROUP BY EmplayeeId,DepartmentId) AS Emp ON Emp.DepartmentId = Dep.DepartmentId