sql for xml path(STRING_AGG)

本文介绍如何使用SQL查询从不同表中获取并整合数据,通过具体示例展示了如何将学生信息与班级信息关联起来,以及如何从城市数据表中提取特定城市的下级城市信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例1

效果

--获取班级信息
SELECT * FROM ClassDemo;
--获取学生信息
SELECT * FROM StudentDemo;
--将学生信息合并到班级信息中
SELECT c.ClassID,c.ClassName,Students=STUFF((
SELECT ','+CAST(StudentID AS VARCHAR(36)) FROM StudentDemo s WHERE s.ClassID=c.ClassID FOR XML PATH('')
),1,1,'') FROM ClassDemo c



示例2

效果

SELECT * FROM City;

SELECT DISTINCT UpperID,CityID=STUFF((
SELECT ','+CAST(CityID AS VARCHAR(36)) FROM City c2 WHERE c1.UpperID=c2.UpperID FOR XML PATH('')
),1,1,'') FROM City c1;


如果sql server版本在2017以上,可以使用STRING_AGG

select p.ProjectName,STRING_AGG(b.BlockName,',') from TB_Block b
inner join TB_Project p on b.ProjectID=p.ProjectID
where b.IsInvalid=0 
and p.ProjectName in ('TPQ项目(SXTD)','WH项目(SXTD)')
group by p.ProjectName

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值