SQL FOR XML PATH 用法
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主.
这是一张存放员工的任务表(数据乱填的,表也是随意建的)
FOR XML PATH 用法如下:
SELECT * FROM TBL_Task_info FOR XML PATH
查询结果:
而且,它的节点名称是可以改变的,如下:
SELECT Task_ID AS 'ID',Task_Name AS 'Name',Employee_ID AS 'Employee' FROM TBL_Task_info FOR XML PATH('Task')
下面是它的应用,我把任务名称相同的人都放到一列中:
如:
Task_Name Employee
任务一 小一,小二,小三
SQL语句如下:
SELECT B.Task_Name,LEFT(EmployeeList,LEN(EmployeeList)-1) as Employee FROM( SELECT Task_Name, (SELECT Employee_ID+',' FROM TBL_Task_info WHERE Task_Name=A.Task_Name FOR XML PATH('')) AS EmployeeList FROM TBL_Task_info AS A GROUP BY Task_ID,Task_Name) B
效果:
以后,总有地方会用到的。