有数据表学生信息表:学生ID、学生姓名、出生日期、班级ID。
现在我们要实现的效果为:班级ID、学生姓名集合。结果如下:
班级ID 学生姓名
1 张三,李四,王五
2 赵六,商七,杜八
3 孙丹,刘红
4 赵敏
实现代码可以参考如下(information_schema为系统表):如下SQL可以直接在任何数据库中执行。
SELECT table_name, LEFT(column_names , LEN(column_names )-1) AS column_names FROM information_schema.columns AS extern CROSS APPLY ( SELECT column_name + ',' FROM information_schema.columns AS intern WHERE extern.table_name = intern.table_name FOR XML PATH('') ) pre_trimmed (column_names) GROUP BY table_name, column_names;
sql-server 2012之后微软提供了CONCAT函数可以实现这个功能