【发布时间】:2020-01-19 20:25:09
【问题描述】:
我有一个包含 2 列的表,第一列称为 ID,第二列称为 TRACKING。 ID 列有重复项,我想将所有这些重复项合并到一行中,其中来自重复行的 TRACKING 中的每个值都放入同一行中的新列中,我不再有重复项.
我尝试了一些建议的方法,将所有值连接到一列中,但我希望重复的 IDs 的这些 TRACKING 值位于单独的列中。下面的代码没有达到我的预期。
SELECT ID, TRACKING =
STUFF((SELECT DISTINCT ', ' + TRACKING
FROM #t b
WHERE b.ID = a.ID
FOR XML PATH('')), 1, 2, '')
FROM #t a
GROUP BY ID
我正在寻找这个:
| ID | TRACKING |
-----------------
| 5 | 13t3in3i |
| 5 | g13g13gg |
| 3 | egqegqgq |
| 2 | 14y2y24y |
| 2 | 42yy44yy |
| 5 | 8i535i35 |
然后把它变成这样:
| ID | TRACKING | TRACKING1 | TRACKING2 |
-----------------
| 5 | 13t3in3i | g13g13gg | 8i535i35 |
| 3 | egqegqgq | | |
| 2 | 14y2y24y | 42yy44yy | |
【问题讨论】:
-
你使用什么数据库?
-
@mdem7 我正在尝试在 SQL 中完成此操作
-
正确标记!!!您的代码看起来像 SQL Server,但您标记了 MySQL。它们是完全不同的产品。
标签: mysql sql database sorting mysql-5.7