--使用 自连接、for xml path('')和stuff合并显示多行数据到一行中
--注
--1、计算列可以不用包含在聚合函数中而直接显示,如下面语句的val。
--2、for xml path('') 应该应用于语句的最后面,继而生成xml。
--3、for xml path('root')中的path参数是生成的xml最顶级节点。
--4、字段名或是别名将成为xml的子节点,对于没有列名(字段+'')或是没有别名的字段将直接显示。如[value] +','则是用,分隔的数据(aa,bb,)。
--5、对于合并多行数据显示为一行数据时使用自连。
--生成测试表并插入测试数据
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
--第一种显示
select id, [val]=(
select [value] +',' from tb as b where b.id = a.id for xml path('')) from tb as a
--第一种显示结果
--1 aa,bb,
--1 aa,bb,
--2 aaa,bbb,ccc,
--2 aaa,bbb,ccc,
--2 aaa,bbb,ccc,
--第二种显示
select id, [val]=(
select [value] +',' from tb as b where b.id = a.id for xml path('')) from tb as a
group by id
--第二种显示结果
--1 aa,bb,
--2 aaa,bbb,ccc,
--第三种显示
select id, [val]=stuff((
select ','+[value] from tb as b where b.id = a.id for xml path('')),1,1,'') from tb as a
group by id
--第三种显示结果
--1 aa,bb
--2 aaa,bbb,ccc
--典型应用
--AMD_GiftNew中获取所有的管理员ID
--select adminIds = stuff((select ','+cast(UserId as varchar) from MM_Users where RoleId = 1 and flag =0 for xml path('')),1,1,'')
--典型应用显示结果
--3,27
分享到:
相关推荐
一个将xml多行格式变成一行,方便平时在IDE中的测试,String 会报错。
在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。…………
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...
kettle 解析xml数据,xml多层分组嵌套,xml stax方法,完整解析案例使用(包含xml文件以及ktr文件)。ETL大数据迁移,数据清洗。XML Input Stream (StAX) 方法
XML Path Language xml语言
可以保存所有界面上的控件数据,包括EDIT LISTCONTRL BUTTON之类的数据.比如标题,选中状态之类的到XML.再从XML加载到控件.通过遍历的方法.一劳永逸
使用XML实现分页显示数据
从网络获取XMl数据并在客户端显示出来,包含web应用端和Android客户端以及需要的JAR包。
在C#2019中,将XML结点动态映射为属性集,然后使用PropertyGrid加载并显示。支持父结点的名称自动映射为Category(目录).
将access数据库数据转换为xml文件
IBM在线教程,教程探讨 Simple API for XML 2.0.x 版(或 SAX 2.0.x)的使用。它针对的是如下开发人员,他们理解 XML,并且希望学习这个用于...)在本教程中,您将学习如何使用 SAX 来检索、操作和输出 XML 数据。
大家都知道在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。
自动生成DataGridView的列,将DataGridView的数据源与DataSet绑定,并保存到xml中,然后从xml读数据显示到DataGridView中 开发环境:Vista+vs2008+c#
将多个xml格式文件,高效合并为一个标准的xml格式文件,输出为一个xml格式文件。注:在文件层面的操作,不需要逐个解析节点。
kettle批量解析多个xml文件,适合于批量数据导入,生产环境直接测试,肯定没有问题
Qt读写Xml文件;QTreeWidget加载显示Xml文件内容;QTreeWidget项导出保存为Xml;QTreeWidget项实现可拖动
GridView显示XML数据
根据xmlPath路径,找到对应的xml文件,进行解析!之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml"; XPathUtil util ...
xml合并工具
Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件