как объединить текст разных строк в таблице в Oracle - PullRequest
3 голосов
/ 21 ноября 2011

Мне нужно объединить различные значения строк в таблице в Oracle.Например, рассмотрим эту таблицу

enter image description here

Я хочу выводить как

HI TOM,    
ITS COLD,
PL- SQL

Как видите, столбцы объединяются в QID и разделяются пробелом

Ответы [ 2 ]

3 голосов
/ 21 ноября 2011

Кроме того, если вы используете 11g2, вы можете использовать функцию listagg, это также позволяет упорядочить:

SELECT qid, listagg(answer,' ') WITHIN GROUP(ORDER BY ROWNUM) 
  FROM t
 GROUP BY qid

Наконец, если вы не используете 11g2 и у вас нет функции wm_contact, как предложено @ steve , вы можете использовать следующее:

SELECT qid,
       rtrim(xmlagg(xmlelement(e, answer || ' ')).extract('//text()'), ' ') 
  FROM t
 GROUP BY qid
3 голосов
/ 21 ноября 2011

Вам нужно сделать что-то вроде

SELECT qid, wmsys.wm_concat(answer) CONCAT 
FROM t
GROUP BY qid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...