设为首页 加入收藏

TOP

SQL巧用XML PATH来生成符合规则的查询结果集
2014-11-24 08:26:22 来源: 作者: 【 】 浏览:0
Tags:SQL 巧用 XML PATH 生成 符合 规则 查询 结果
在查询后面在
FOR XML PATH可以生成XML格式结果集,好好利用这个技术,可以实现很多意想不到的查询效果
最简单的用法:
SELECT USERID,USERNAME FROM DBO.USER_INFO FOR XML PATH
结果类似这样

6
ding25901


10
zhong


11
yanxunhan

我们看到是以XML格式来显示的,注意它是个字符串,它只显示在一行上。
可以为path加个参数,来改变row节点的名称,如
SELECT USERID,USERNAME FROM DBO.USER_INFO FOR XML PATH('zzl')
结果变成了这样

6
ding25901


10
zhong

当然,发挥我们的想像力,可能也会出现这种结果
{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 中东,


作者 张占岭
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL Server数据库自增长标识列的.. 下一篇SQL数据库重命名

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis压力测试实战 - (2025-12-27 09:20:24)
·高并发一上来,微服 (2025-12-27 09:20:21)
·Redis 高可用架构深 (2025-12-27 09:20:18)
·Linux 系统监控 的完 (2025-12-27 08:52:29)
·一口气总结,25 个 L (2025-12-27 08:52:27)