您可能要使用
LISTAGG。
SELECt col_id, LISTAGG(col_text, '|') WITHIN GROUP (ORDER BY col_text) text FROM table1 GROUP BY col_id
输出:
| COL_ID | TEXT |----------------------------| 111 | This|a|is|test. |
SQLFiddle
更新 如果您需要在列表中获取不同的文本值
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



