1 sql sql-server concatenation
例如,我有两张桌子.第一张桌子是学生,第二张桌子是学生正在上的课程.如何使用select语句,以便我可以看到两列学生和课程,以便用逗号分隔课程.
谢谢.
Ben*_*ter 10
假设您使用的是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)
)
Run Code Online (Sandbox Code Playgroud)
现在这个查询应该完成你以后的工作:
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
Run Code Online (Sandbox Code Playgroud)
比目前接受的答案更简单...