连接Oracle中的SQL查询的结果

Ram*_*mie 12 sql oracle concatenation oracle10g

我在表格中有这样的数据

NAME PRICE
A    2
B    3
C    5
D    9
E    5
Run Code Online (Sandbox Code Playgroud)

我想在一行中显示所有值; 例如:

A,2|B,3|C,5|D,9|E,5|
Run Code Online (Sandbox Code Playgroud)

我将如何进行查询,在Oracle中为我提供这样的字符串?我不需要把它编程成某种东西; 我只想要一种方法让这条线出现在结果中,这样我就可以复制它并将其粘贴到word文档中.

我的Oracle版本是10.2.0.5.

Art*_*Art 9

- Oracle 10g -

SELECT deptno, WM_CONCAT(ename) AS employees
  FROM   scott.emp
GROUP BY deptno;

Output:
     10  CLARK,MILLER,KING
     20  SMITH,FORD,ADAMS,SCOTT,JONES
     30  ALLEN,JAMES,TURNER,BLAKE,MARTIN,WARD
Run Code Online (Sandbox Code Playgroud)


小智 6

我知道这有点晚了但试试这个:

SELECT LISTAGG(CONCAT(CONCAT(NAME,','),PRICE),'|') WITHIN GROUP (ORDER BY NAME) AS CONCATDATA
FROM your_table
Run Code Online (Sandbox Code Playgroud)

  • OP为10g,11g中引入了`listagg()`.但是这个答案使整个帖子更好地整理了字符串聚合技术. (3认同)