SQL巧用XML PATH来生成符合规则的查询结果集
来源:互联网 发布:魔法王座座骑升阶数据 编辑:程序博客网 时间:2024/05/21 19:07
在查询后面在
FOR XML PATH可以生成XML格式结果集,好好利用这个技术,可以实现很多意想不到的查询效果
最简单的用法:
SELECT USERID,USERNAME FROM DBO.USER_INFO FOR XML PATH
结果类似这样
<row>
<USERID>6</USERID>
<USERNAME>ding25901</USERNAME>
</row>
<row>
<USERID>10</USERID>
<USERNAME>zhong</USERNAME>
</row>
<row>
<USERID>11</USERID>
<USERNAME>yanxunhan</USERNAME>
</row>
我们看到是以XML格式来显示的,注意它是个字符串,它只显示在一行上。
可以为path加个参数,来改变row节点的名称,如
SELECT USERID,USERNAME FROM DBO.USER_INFO FOR XML PATH('zzl')
结果变成了这样
<zzl>
<USERID>6</USERID>
<USERNAME>ding25901</USERNAME>
</zzl>
<zzl>
<USERID>10</USERID>
<USERNAME>zhong</USERNAME>
</zzl>
当然,发挥我们的想像力,可能也会出现这种结果
{6,ding25901}{10,zhong}
怎么样,有点像JSON的格式标准吧,看看代码:
SELECT TOP 2
'{' + CAST(UserID AS VARCHAR) + ',' ,
userName + '' ,
'}'
FROM dbo.User_Info
FOR XML PATH('')
只要发挥你的想像力,就有你想不到的事情发生,如果没有xml path,可能我们还要用性能较低的游标
看看这个例子,找出用户地址表中,所有用户的所有地址信息:
SELECT B.userid ,
List
FROM ( SELECT userid ,
( SELECT c.address + ','
FROM dbo.UserAddress c
WHERE c.UserID = a.userid
FOR
XML PATH('')
) AS List
FROM dbo.UserAddress A
GROUP BY userid
) B
结果是:
userid addresslist
------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
010E3E9D-67F5-4C25-80A7-0B56D03F3427 日本,中国,
062061EB-61F2-49A3-AA87-7BD5A59F5970 中国,美国,
1A58A662-A3DF-4BEE-B0D0-B0F73846D55B 中东,
0 0
- SQL巧用XML PATH来生成符合规则的查询结果集
- linq to sql取出随机记录/多表查询/将查询出的结果生成xml
- sql 嵌套查询,并通过分组 和字段连接函数GROUP_CONCAT 查询出符合业务的结果集
- SQL Server根据查询结果,生成XML文件
- oracle中用一条select 语句把符合多个条件的查询结果列出来
- Mysql数据库查询符合where条件的某几条结果sql语句
- SQL 查询结果为 XML
- SQL 字段charindex,stuff,ltrim, for xml path('') 操作字符串 合并查询结果项值
- SQL查询 生成XML
- 使用 SQL的 for xml path来进行字符串拼接
- SQL SERVER中 用FOR XML PATH将查询结果以XML输出 然后应用于 sql 合并字段功能介绍
- FOR XML PATH 将查询结果集以XML形式展现
- SQL查询结果导出XML文件简单的方法
- SQL查询结果导出XML文件简单的方法
- SQL将查询的结果转化为XML格式数据
- 查询符合条件的 sql agent job
- 根据查询结果,生成XML文件
- 根据查询结果,生成XML文件
- 王哲:Cocos2d-x 3.0引擎带来了什么?
- Web应用程序设计十个建议
- Flashback Database
- Ubuntu下MySQL的安装及远程连接配置等配置
- 创建表的时候创建索引
- SQL巧用XML PATH来生成符合规则的查询结果集
- GCD编程简介dispatch_group_async
- 设计模式六大原则(1):单一职责原则
- 排序算法
- 手机刷机数据丢失如何恢复
- 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
- ORACLE存储过程编码规范
- Android实现自定义带文字和图片的Button
- 一位39岁程序员的困惑:知道得越多编程越慢怎么办?