3

可能重复:
连接行值 T-SQL

我有一张这样的桌子:

ref_num   name      type       route
----------------------------------------
1         A         W          401
2         B         X          401
3         C         E          401
3         C         E          411
4         D         Z          401
5         K         W          701
5         K         W          991
5         K         W          556
5         K         W          401
6         L         X          401
7         D         Y          401
7         D         Y          411
7         D         Y          680
8         E         Z          401

我想要这样的结果:

ref_num   name      type       routes
----------------------------------------
1         A         W          401
2         B         X          401
3         C         E          401,411
4         D         Z          401
5         K         W          701,991,556,401
6         L         X          401
7         D         Y          401,411,680
8         E         Z          401

如果有人可以给我一个查询示例以获得所需的结果,将不胜感激

4

3 回答 3

3
select ref_num, name, type, group_concat(routes)
from your_table
group by ref_num

在 MySQL 中,您不必 group by选择所有值。其他值可能会随机选择。但是,如果一组中的其他值相同,那么您不必担心。OP的问题就是这种情况。

于 2012-06-27T14:56:51.140 回答
3

您可以将它们与GROUP_CONCATwith连接起来GROUP BY,例如:

SELECT ref_num, name, type, GROUP_CONCAT(routes SEPARATOR ', ')   
FROM TableNAme 
GROUP BY ref_num, name, type
于 2012-06-27T14:59:59.987 回答
0

我认为 WM_CONCAT 会这样做:

SELECT REF_NUM, NAME, TYPE, WM_CONCAT(ROUTE) 
FROM ROUTES
GROUP BY REF_NUM, NAME, TYPE;
于 2012-06-27T15:03:40.770 回答