【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形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
随机推荐
- ERR: Call to undefined function openssl_random_pseudo_bytes()
最近使用TP5/PHP7,总是出现ERR: Call to undefined function index\index\openssl_random_pseudo_bytes(),才发现是php没有 ...
- remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接
目录 I. 预备 II. Mac连接Windows III. Windows连接Mac IV. Windows连接Ubuntu V. Mac连接Ubuntu VI. Ubuntu连接Mac VII, ...
- javascript,jquery代码规范
jquery代码规范 Coding Standards & Best Practices 中文翻译版:jquery编程的标准写法和最佳实践 javascript代码规范 JavaScript编 ...
- bin和sbin的区别
bin和sbin的区别: bin:用户命令(所有用户均可使用) sbin:管理命令(通常只有管理员可以使用)
- C# 插件
1.EsFrameWork框架 http://www.oraycn.com/ESFramework_download.aspx
- 对js原型的理解
1.值类型和引用类型,引用类型都是对象,通过typeof()测试类型,instanceof测试是否是对象.对象是属性的集合. 2.对象都是由函数创建的,函数又是一个对象. 3.函数有一个默认的属性,叫 ...
- day3 python 函数
常犯的错误: IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行... 函数是指一 ...
- 每日一九度之 题目1023:EXCEL排序
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:18804 解决:4240 题目描述: Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例 ...
- YTU 2990: 链表的基本运算(线性表)
2990: 链表的基本运算(线性表) 时间限制: 1 Sec 内存限制: 128 MB 提交: 1 解决: 1 题目描述 编写一个程序,实现链表的各种基本运算(假设顺序表的元素类型为char),主 ...
- linux下samba环境搭建
1.安装samba apt-get install samba samba-common 2.修改配置 /etc/samba/smb.conf 在最后添加以下内容即可实现每个用户访问自己的home目录 ...