【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形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
随机推荐
- C# HttpClient, 使用C#操作Web
我们知道, .Net类库里提供了HttpWebRequest等类,方便我们编程与Web服务器进行交互. 但是实际使用中我们经常会遇到以下需求,基础类里没有直接提供相应的功能(WebClient类包含这 ...
- Content Delivery Network
Coding Standards & Best Practices 7 Reasons to use a Content Delivery Network CDN公共库汇总
- js 判断某个对象是不是dom对象
<script type="text/javascript">//首先要对HTMLElement进行类型检查,因为即使在支持HTMLElement的浏览器中,类型却是有 ...
- myeclipse的快捷键和myeclipse快捷键设置
1.Ctrl+M切换窗口的大小 2.Ctrl+Q跳到最后一次的编辑处 3.F2当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Tooltip D ...
- javaWEB小练习:在数据库中查找相同的username和password
/*练习题: * 在Mysql数据库中创建一个person数据表,添加三个字段,id,user,password,并录入几条记录 * *练习题:定义一个login.html,里面定义了两个请求字段:u ...
- C# 添加.DLL 出错的解决方法
解决方法: 1. 注册组件: 运行--cmd--regsvr32 dll的绝对路径名(例如: regsvr32 C:\bin\EFGateWayOfERP.dll) 如果注 ...
- Android系统中 setprop,getprop,watchprops命令的使用
如:在frameworks/opt/net/ims/src/java/com/android/ims/ImsManager.java if (SystemProperties.get("pe ...
- 2015 AlBaath Collegiate Programming Contest A
Description Tamer is traveling with his brother on a long highway. He sees a traffic light at a dist ...
- linux中的shell脚本编程
[1]shell脚本 1--- shell命令 2--- 控制语句(新的语法) (Shell命令的有序集合) [2]创建shell脚本文件 1--- 1.sh 2--- chmod 777 1.sh ...
- SQL数据库约束行为---防止数据漏填
防止有些该填的没有填:一.非空约束不能为NULL.操作:在表的设计界面中“允许NULL值”中的复选框去掉. 二.默认值.如果不给列赋值的话,会使用默认值填上.操作:在表的设计界面,选择相应的列,在下面 ...