0

可能重复:
由于 Oracle 中的 select 语句导致的逗号分隔列表

我在 SQL 表中有这样的字段:

ELEMENT_CODE  DIAG_CODE
------------------------
FTD           1234
FTD           1243
FTD           6384
FTD           9938
FLA           9292
FLA           3654
FLA           1122

我在 oracle 数据库的报告中需要这样的记录:

ELEMENT_CODE  DIAG_CODE
------------------------
FTD           1234-1243-6374-9938
FLA           9292-3654-1122
4

1 回答 1

3

对于 Oracle 11g 第 2 版:

SELECT ELEMENT_CODE, LISTAGG(DIAG_CODE, '-') WITHIN GROUP (ORDER BY DIAG_CODE) AS "DIAG_CODES"
FROM SomeTable
GROUP BY ELEMENT_CODE;

Oracle 11g 之前的第 2 版将是:

SELECT ELEMENT_CODE, WM_CONCAT(DIAG_CODE, '-')
FROM SomeTable
GROUP BY ELEMENT_CODE;

来源:http ://www.oracle-base.com/articles/misc/StringAggregationTechniques.php

于 2011-03-23T01:40:39.693 回答