例如我有两张桌子。第一个表是学生,第二个表是学生正在学习的课程。如何使用 select 语句以便我可以看到两列学生和课程,以便课程以逗号分隔。
Thanks.
假设您使用的是 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
比当前接受的答案简单得多......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)