我们日常查询数据时,经常会有将查询到的数据按照某一列分组显示(合并多行数据),比如:
表结构:
create table t_user_course(username varchar(32),coursename varchar(100));

需要将以上数据按照用户名分组,所选课程列不同项之间用逗号隔开,在一行中显示,效果如下:

以下分别总结了sqlserver、Oracle、MySQL数据的处理SQL:
1.sqlserver:
SELECT
username,
coursename= (
STUFF(
(SELECT ',' + coursename
FROM t_user_course
WHERE username= A.username
FOR xml path('')
),1,1,''
)
)
FROM t_user_course A
GROUP by cm_pk1;
2.Oracle(适

本文介绍了如何在SQL Server、Oracle及MySQL中将查询到的多行数据按某一列进行分组并合并为一行的方法。具体包括使用STUFF、wm_concat及group_concat函数实现将同一用户的多个课程名用逗号连接。
&spm=1001.2101.3001.5002&articleId=80890665&d=1&t=3&u=7b2ae873730e4b5787e6320c675a0545)
431

被折叠的 条评论
为什么被折叠?



