Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Alterar separador da função WM_CONCAT do Oracle 11gR2


Você pode querer usar LISTAGG .
SELECT col_id, 
       LISTAGG(col_text, '|') WITHIN GROUP (ORDER BY col_text) text
  FROM table1
 GROUP BY col_id

Saída:
| COL_ID |            TEXT |
----------------------------
|    111 | This|a|is|test. |

SQLFiddle

ATUALIZAÇÃO Se você precisar obter valores de texto distintos em uma lista
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