Potresti voler usare LISTAGG
.
SELECT col_id,
LISTAGG(col_text, '|') WITHIN GROUP (ORDER BY col_text) text
FROM table1
GROUP BY col_id
Uscita:
| COL_ID | TEXT |
----------------------------
| 111 | This|a|is|test. |
SQLFiddle
AGGIORNAMENTO Se è necessario ottenere valori di testo distinti in un elenco
SELECT col_id,
LISTAGG(col_text, '|')
WITHIN GROUP (ORDER BY col_text) text
FROM
(
SELECT DISTINCT col_id, col_text
FROM table1
)
GROUP BY col_id
SQLFiddle