sql单表一对多查询,表中有两列一列为id一列是姓名,比如“张三”对应“1,2,3”三个id怎么查询可以出现

第一列为1,2,3第二列只显示张三 如图所示
SELECT id,name FROM 表 GROUP BY id, name ORDER id
SELECT
SELECT id,name FROM 表 GROUP BY id, n撒地方“”ame ORDER id
id,name FROM 表 GROUP BY id, name ORDER id

第1个回答  2012-08-17
把数据导出来,用excel 合并
第2个回答  2012-08-17
不好意思,实现不了,不会合并单元格的,只能显示成
1 张三
2 张三
3 张三
或者显示成这样
1,2,3 张三追问

怎么实现啊 求指教

追答

oracle是这样的

select wmsys.wm_concat(id),name from xxx group by id

本回答被提问者和网友采纳
第3个回答  2012-08-17
sqlserver2005以上版本:不过是 1,2,3 张三 这种形式的
select stuff((select ','+cast(id as varchar) from table as a where a.name=b.name for xml path('')),1,1,''),name
from table as b where name like '张%' group by name
第4个回答  2012-08-17
这是结果图,你把多图展出来看看,一直没看懂你的意思追问

就是有两列,一列为id一列为名字,一个名字有可能对应多个id比如1||张三,2||张三,3||张三这样。然后我想取值的时候只显示一个张三。

比如这是原数据

然后我想显示成这样

相似回答