使用FOR XML合并多行查询数据到一行

--新建ClassInfo

create table ClassInfo

(

    CID  int identity(1,1), --本表ID

    CNumber int,            --班级人数

    CName varchar(10)       --班级名称

);

--给表ClassInfo新增测试数据

insert ClassInfo

       select 20,'一年级班'

union  select 20,'一年级班'

union  select 20,'一年级班'

union  select 20,'一年级班';

 

--新增表Students(CID 班级表外键,SID学生信息表ID学生的学号就是,SName)

create table Students

(

    [SID] int identity(1,1), --学号

    CID int,                 --班级ID 

    SName varchar(10)         --姓名      

);

 

--Students新增测试数据

insert into Students

      select 1,''

union select 1,''

union select 1,''

union select 1,''

union select 2,''

union select 2,'';

 

按班级显示人员信息

SELECT a.CID,

       STUFF((SELECT ','+SName

               FROM Students AS b

               WHERE b.CID = a.CID

               FOR XML PATH('')),1,1,'') AS SName

FROM Students AS a   

GROUP BY a.CID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值