sql查询结果中有id相同的字段如何对查询结果进行操作将id相同的合并为一条数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql查询结果中有id相同的字段如何对查询结果进行操作将id相同的合并为一条数据相关的知识,希望对你有一定的参考价值。

班级表class
classid, calssname,teacherid1
1 一班 1
1 一班 2
2 三班 1
教师表teacher
teacherid, teachername
1 zhangsan
2 lisi
select classid ,classname,teachername from class left join teacher on class.teacherid=teacher.teacherid
结果如下:
classid ,classname,teachername
1 一班 zhangsan
1 一班 lisi
2 三班 zhangsan
想要将classid相同的合并为一条,效果如下
classid ,classname,teachername
1 一班 zhangsan,lisi
2 三班 zhangsan
只能对两个表联合查询的结果进行合并操作,各位大神们拜托了,我的财富值都提问 了只剩真么多了,万分感谢

也不说你是用的什么数据库,sqlserver为例

建表

create table class
(classid int,
classname varchar(10),
teacherid int)


insert into class values (1,\'一班\',1)
insert into class values (1,\'一班\',2)
insert into class values (2,\'三班\',1)

create table teacher
(teacherid int,
teachername varchar(10))

insert into teacher values (1,\'zhangsan\')
insert into teacher values (2,\'lisi\')

执行

with tb as
(select a.classid,a.classname,b.teachername 
from class a left join teacher b 
on a.teacherid=b.teacherid)
select classid,classname,teachername=stuff((select \',\'+teachername from tb t where classid=tb.classid and classname=tb.classname for xml path(\'\')), 1, 1, \'\')  
from tb  
group by classid,classname

结果截图

参考技术A http://www.accessoft.com/article-show.asp?id=8496

问一个sql查询,如何给查询结果加上序号

SQL Server 下

SELECT ROW_NUMBER()  OVER(ORDER BY ID) ROWNU,A1 FROM TA1

解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。

SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。


在Oracle里,本就有rownum。可直接用:

SELECT rownum,A1 FROM TA1

其它的数据库可能有别的方案,不一而论。

参考技术A

SQL Server 下

1、SELECT ROW_NUMBER()  OVER(ORDER BY ID) ROWNU,A1 FROM TA1

解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。

SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。

在Oracle里,本就有rownum。可直接用:

1、SELECT rownum,A1 FROM TA1

其它的数据库可能有别的方案,不一而论。

参考资料

百度.百度[引用时间2018-1-4]

参考技术B oracle 有rownum 其它数据我不清楚

以上是关于sql查询结果中有id相同的字段如何对查询结果进行操作将id相同的合并为一条数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句对返回的结果集里的字段再进行条件查询,在一个结果集显示

SQL查询结果一字段相同合并,另一字段为数字和逗号合并并去重

sql多表连接查询问题

sql 如何过滤重复记录

SQL查询如何对增量键RANK中的相同结果进行单独分组

数据库sql去重