例如,我有两个表。第一张表是学生,第二张表是学生所修的课程。如何使用选择语句,以便可以看到两列学生和课程,因此课程之间用逗号分隔。
谢谢。
假设您使用的是SQL Server 2005:
这应该做的是您要执行的操作-显然根据需要替换字段:
出于演示目的,请考虑以下两个表结构:
Students( STU_PKEY Int Identity(1,1) Constraint PK_Students_StuPKey Primary Key, STU_NAME nvarchar(64) ) Courses( CRS_PKEY Int Identity(1, 1) Constraint PK_Courses_CrsPKey Primary Key, STU_KEY Int Constraint FK_Students_StuPKey Foreign Key References Students(STU_PKEY), CRS_NAME nvarchar(64) )
现在,此查询应该可以完成您要做的工作:
Select s.STU_PKEY, s.STU_NAME As Student, Stuff(( Select ',' + c.CRS_NAME From Courses c Where s.STU_PKEY = c.STU_KEY For XML Path('') ), 1, 1, '') As Courses From Students s Group By s.STU_PKEY, s.STU_NAME
比目前接受的答案更简单…