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\')
执行
(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
结果截图
问一个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其它的数据库可能有别的方案,不一而论。
参考技术ASQL 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语句对返回的结果集里的字段再进行条件查询,在一个结果集显示