SQL Server 2012数据库将同一个班的学生姓名用逗号连接应该如何实现?
1.19K 次浏览
2 个回答
-
在SQL Server 2012数据库中,可以使用
FOR XML PATH
和STUFF
函数来将同一班级的姓名连接成逗号分隔的字符串。以下是示例脚本:这将创建一个名为
students
的表格,并插入示例数据。您可以使用以下SQL查询来将同一班级的姓名连接成逗号分隔的字符串:解释:
SELECT
语句中选择class_name
列和使用STUFF
函数连接同一班级的姓名。STUFF
函数将在逗号之前删除第一个字符,因为逗号分隔的字符串的第一个字符是不必要的。FOR XML PATH
用于将姓名连接成逗号分隔的字符串。TYPE
用于将XML数据类型转换为nvarchar(max)
数据类型。value('.', 'nvarchar(max)')
用于提取XML标记中的文本内容。
请注意,以上查询将在同一班级中连接所有姓名。如果需要按其他标准进行连接,可以更改
WHERE
子句。示例输出结果:
这表明:
class_name
为 A 的班级中有 Alice、Bob、Frank 和 Charlie 四个人;class_name
为 B 的班级中有 Charlie、Alice、David 和 Emily 四个人;class_name
为 C 的班级中有 David、Bob、Grace 和 Alice 四个人。
对于每个班级,
names
列都是一个用逗号分隔的字符串,其中包含班级中所有学生的姓名。