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

来源:互联网 发布:无主之地mac下载 编辑:程序博客网 时间:2024/06/01 07:45

--新建ClassInfo

create tableClassInfo

(

    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 tableStudents

(

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

    CID int,                 --班级ID 

    SName varchar(10)        --姓名      

);

 

--Students新增测试数据

insert intoStudents

      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 StudentsAS a   

GROUP BYa.CID

原创粉丝点击