首页 > 代码库 > sql for xml 拼接相同类的列数据
sql for xml 拼接相同类的列数据
数据库中记录着员工的工作经历,一个经历一条数据,现有一个需求要Excel导出员工的工作经历,所以就得把工作经历拼接在一起
测试的数据表如下
需要处理得到的结果如下(多个经历用了逗号隔开):
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 拼接相同类的列数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。