码迷,mamicode.com
首页 > 数据库 > 详细

sql for xml 拼接相同类的列数据

时间:2014-10-31 15:33:29      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   for   sp   strong   数据   

数据库中记录着员工的工作经历,一个经历一条数据,现有一个需求要Excel导出员工的工作经历,所以就得把工作经历拼接在一起

测试的数据表如下

bubuko.com,布布扣

需要处理得到的结果如下(多个经历用了逗号隔开):

bubuko.com,布布扣

SQL语句:

SELECT empID, LEFT(workExperience,LEN(workExperience)-1) AS workExperience  FROM (
 SELECT empID,(SELECT Experience++‘,‘ FROM dbo.Employee WHERE empID =A.empid FOR XML PATH(‘‘))AS workExperience
 FROM dbo.Employee A GROUP BY A.empID
)B

Select 的查询结果会作为行集返回,但是你同样可以在sql中指定for xml子句使得查询作为xml来检索。在for xml子句中,可以指定以下模式之一:RAW 、AUTO、EXPLICIT和PATH

RAW模式:

SELECT TOP 3 id,NAME,ClientCode FROM dbo.Customer FOR XML RAW

结果:

 

<row id="94" NAME="1st paygateway.net" ClientCode="C-NA-TL-0063" />
<row id="95" NAME="3D NURI CO LTD" ClientCode="C-AS-TL-0049" />
<row id="96" NAME="3-D TV" ClientCode="C-NA-TL-0064" />

 

 

RAW模式:

SELECT TOP 3 id,NAME,ClientCode FROM dbo.Customer FOR XML AUTO

结果:

 

<dbo.Customer id="94" NAME="1st paygateway.net" ClientCode="C-NA-TL-0063" />
<dbo.Customer id="95" NAME="3D NURI CO LTD" ClientCode="C-AS-TL-0049" />
<dbo.Customer id="96" NAME="3-D TV" ClientCode="C-NA-TL-0064" />

 

 

 

 

 

 

 

相关的sql for xml 可参考:http://www.cnblogs.com/kenshincui/archive/2011/12/31/2309217.html

sql for xml 拼接相同类的列数据

标签:style   blog   http   color   ar   for   sp   strong   数据   

原文地址:http://www.cnblogs.com/dhui69/p/4064988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!