用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录

比如表A中
字段1 字段2
2 43
3 65
2 68
1 92
2 55
1 100
用sql语句实现查询,查询出表
1 92、100
2 43、68、55
3 65
这样结果

你的问题主要是实现行转列
oracle数据库中后者可以用wmsys.wm_concat实现,具体sql如下:
select 字段1, wmsys.wm_concat(字段2) from 表
group by 字段1追问

#1305 - FUNCTION wmsys.wm_concat does not exist 出现这个错误

追答

厄,目测你这是SQL SERVER
如果有其它列做标识,可以用在子查询中使用union来连接
如果没有标识,只好用存储过程来实现了
可以看下面的参考

参考资料:http://www.cnblogs.com/emanlee/archive/2009/08/14/1546353.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-29
SELECT 表B.字段1,LEFT(字段2,LEN(字段2)-1) as 字段2 FROM (
SELECT 字段1,
(SELECT 字段2+'、' FROM 表A
WHERE 字段1=表c.字段1
FOR XML PATH('')) AS 字段2
FROM 表A 表c
GROUP BY 字段1
) 表B

FOR XML PATH 用法可以参照 http://hi.baidu.com/gagahjt/item/bfe3cbf3f3b833e61b111fc6
第2个回答  2012-12-29
select 字段1, 字段2 from 表A group by 字段1