【T-SQL系列】FOR XML PATH 语句的应用
DECLARE @TempTable TABLE
(
UserID INT ,
UserName NVARCHAR(50)
);
INSERT INTO @TempTable
( UserID, UserName )
VALUES ( 1, 'a' )
INSERT INTO @TempTable
( UserID, UserName )
VALUES ( 2, 'b' ) SELECT UserID ,
UserName
FROM @TempTable
FOR XML PATH --其实PATH() 括号内的参数是控制节点名称的
SELECT UserID ,
UserName
FROM @TempTable
FOR XML PATH('lzy') --这样就不显示上级节点了
SELECT UserID ,
UserName
FROM @TempTable
FOR XML PATH('') --大家可以根据自己需要的格式进行组合
SELECT CAST(UserID AS VARCHAR) + '' ,
UserName + ''
FROM @TempTable
FOR XML PATH('') SELECT CAST(UserID AS VARCHAR) + ',' ,
UserName + '' ,
';'
FROM @TempTable
FOR XML PATH('') SELECT '{' + CAST(UserID AS VARCHAR) + ',' ,
'"' + UserName + '"' ,
'}'
FROM @TempTable
FOR XML PATH('')
对应结果集:
下面是一个数据统计的应用,希望大家可以通过下面的实例想到更多的应用
DECLARE @T1 TABLE
(
UserID INT ,
UserName NVARCHAR(50) ,
CityName NVARCHAR(50)
);
INSERT INTO @T1
( UserID, UserName, CityName )
VALUES ( 1, 'a', '上海' )
INSERT INTO @T1
( UserID, UserName, CityName )
VALUES ( 2, 'b', '北京' )
INSERT INTO @T1
( UserID, UserName, CityName )
VALUES ( 3, 'c', '上海' )
INSERT INTO @T1
( UserID, UserName, CityName )
VALUES ( 4, 'd', '北京' )
INSERT INTO @T1
( UserID, UserName, CityName )
VALUES ( 5, 'e', '上海' ) SELECT *
FROM @T1 SELECT CityName ,
( SELECT UserName + ','
FROM @T1
WHERE CityName = A.CityName
FOR
XML PATH('')
) AS UserList
FROM @T1 A
GROUP BY CityName --生成结果(每个城市的用户名) SELECT B.CityName ,
LEFT(UserList, LEN(UserList) - 1)
FROM ( SELECT CityName ,
( SELECT UserName + ','
FROM @T1
WHERE CityName = A.CityName
FOR
XML PATH('')
) AS UserList
FROM @T1 A
GROUP BY CityName
) B
对应结果集:
【T-SQL系列】FOR XML PATH 语句的应用的更多相关文章
- SQL Server FOR XML PATH 语句的应用---列转行
经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...
- 灵活运用 SQL SERVER FOR XML PATH 转
灵活运用 SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些 ...
- 问题:sqlserver有没有类似Oracle的LISTAGG;结果: 灵活运用 SQL SERVER FOR XML PATH
灵活运用 SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前 ...
- 使用 SQL的 for xml path来进行字符串拼接
本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3: ...
- 二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增
一.sql新增后返回主键 1,返回自增的主键: INSERT INTO 表名 (字段名1,字段名2,字段名3,…) VALUES (值1,值2,值3,…) SELECT @@IDENTITY 2,返回 ...
- 使用SQL SERVER FOR XML PATH将多个结果集转换成一行并进行去重处理
在一个医药行业的系统中需要根据患者的接触记录ID获取不同接触类型的集合,效果像这样 --患者接触记录信息,一个患者可以有N个不同的接触记录,每个接触记录又有N个接触类型记录 IF OBJECT ...
- sql 使用 FOR XML PATH实现字符串拼接
sql中经常需要把多个行数据合成一行下面是利用 FOR XML PATH来实现的简单介绍. 1,把图一的转换为图二: SELECT articleID, (),tagID)+',' FROM arti ...
- Sql Server FOR XML PATH
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
- 灵活运用 SQL SERVER FOR XML PATH
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
随机推荐
- 非常好!!!【从头开始写操作系统系列】实现一个-GDT(1)【转】
转自:http://blog.csdn.net/luoyhang003/article/details/47338019 权声明:本文为博主原创文章,未经博主允许不得转载.(文章来源:http://b ...
- fedora 20 yum出错
需要利用linux做项目,所以在win10装了vmvare 以及 fedora,据说这个linux比较稳定.. 1.系统装好以后,需要先把terminal调处理,这才符合程序猿的习惯嘛,具体方法如下 ...
- 【JQGRID DOCUMENTATION】.学习笔记.6.Editing:Common Rules
1 公共编辑属性 要在grid中显示数据的一个关键原因是能简单快速地编辑它.jgGrid提供三种编辑方式: cell editing:编辑指定cell inline editing:编辑同一行的几个c ...
- visio 由于形状保护和/或图层属性设置不能进行编辑
方式一.菜单栏 --> 格式 --> 保护 方式二.用鼠标右键单击组件, 格式 --> 保护 . 转自:http://blog.163.com/chen_dawn/blog/stat ...
- vnc里鼠标拖动终端就会产生ctrl+c终端
然后把有道词典给关了就好了...
- 【转】java编译错误 程序包javax.servlet不存在javax.servlet.*
转载地址:http://blog.163.com/gis_warrior/blog/static/1936171732012811071642/ 编译:javac Servlet.java 出现 软件 ...
- Android 自定义ScrollView ListView 体验各种纵向滑动的需求
分类: [android 进阶之路]2014-08-31 12:59 6190人阅读 评论(10) 收藏 举报 Android自定义ScrollView纵向拖动 转载请标明出处:http: ...
- Communication System(dp)
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25006 Accepted: 8925 ...
- Netfilter/iptables防火墙
http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...
- noi 2971 抓住那头牛
2971:抓住那头牛 查看 提交 统计 提问 总时间限制: 2000ms 内存限制: 65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N ...