posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

FOR XML PATH(''):将查询结果集以XML形式展现。
1、select top 1 opr_id,user_id from dbo.tracking_log FOR XML PATH('oprs')
返回结果xml:

<oprs>
<opr_id>100</opr_id>
<user_id>Natalie813</user_id>
</oprs>
字段名就是xml的节点名,可以 AS 别名。PATH括号中的是根节点名。
2、select '['+opr_id+']' from dbo.tracking_log where user_id = 'Natalie813' FOR XML PATH('')
返回结果:[100][2][4][56]
3、select distinct t1.user_id,
(select t2.opr_id+',' from dbo.tracking_log as t2 where t2.user_id = t1.user_id FOR XML PATH('')) as opr
from dbo.tracking_log as t1
-- where t1.user_id = 'Natalie813'
group by t1.user_id
结果:
列名:user_id         opr
           Natalie813   100,2,4,56,
4、优化步骤3的sql,去掉最后一个逗号

select user_id,LEFT(opr,LEN(opr)-1) from
(
select distinct t1.user_id,
(select t2.opr_id+',' from dbo.tracking_log as t2 where t2.user_id = t1.user_id FOR XML PATH('')) as opr
from dbo.tracking_log as t1
where t1.user_id = 'Natalie813'
group by t1.user_id
) a

posted on   邢帅杰  阅读(243)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2021-06-10 migration
2021-06-10 java之Map、List、Set、HashMap循环方式
点击右上角即可分享
微信分享提示