我需要在单行中连接几个(不同用户)的数据。我会试着更好地解释一下: 我有一个这样的表(6行)
| User | Name | Data
=============================
1 | user1 | Miky | data1
-----------------------------
2 | user2 | Minny | data1
-----------------------------
3 | user1 | Miky | data2
-----------------------------
4 | user1 | Miky | data3
-----------------------------
5 | user3 | Donald | data1
-----------------------------
6 | user3 | Donald | data2
-----------------------------
我想要的是那样的(3排)
| User | Name | Data
=============================
1 | user1 | Miky | data1
| | | data2
| | | data3
-----------------------------
2 | user2 | Minny | data1
-----------------------------
3 | user3 | Donald | data1
| | | data2
-----------------------------
如何使用ORACLE DB在同一个用户上加入这些行?感谢
答案 0 :(得分:1)
您可能正在寻找LISTAGG
这只是用逗号分隔。
SELECT "User", "Name",
RTRIM(LISTAGG("Data" || ', ') WITHIN GROUP(ORDER BY 1),', ') "Data"
FROM Table1
GROUP BY "User", "Name";
如果您需要按换行符分隔,请使用以下内容并绑定到标签
SELECT "User", "Name",
RTRIM(LISTAGG("Data" || '<br/>') WITHIN GROUP(ORDER BY 1),', ') "Data"
FROM Table1
GROUP BY "User", "Name";
的 Fiddle 强> 的
答案 1 :(得分:1)
在StackOverflow here中检查此答案,这可能就是您要找的。 p>