【发布时间】:2013-09-20 06:22:19
【问题描述】:
我将在示例中解释我需要做什么。首先,我们有一个像这样的简单表,命名为 table:
id | name
===+=====
1 | foo
1 | bar
1 | foobar
2 | foo
2 | bar
2 | foobar
现在查询:
SELECT t.* FROM table t GROUP BY t.id
我们会得到类似的结果:
id | name
===+=====
1 | foo
2 | foo
但是是否有可能收集 name 的所有值以获得这样的结果?
id | name
===+=================
1 | foo, bar, foobar
2 | foo, bar, foobar
【问题讨论】:
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
您使用的是哪个 RDBMS? MySQL、SQL Server?
-
@a_horse_with_no_name, asstander:DBMS 并不重要,比如说 MySQL 和 PG。
-
DBMS 确实很重要。解决方案会有所不同。
-
我猜,对于 Oracle 来说,我会使用
LISTAGG()。