【问题标题】:Grouping data in oracle table from 2 diff colums [duplicate]从2个差异列对oracle表中的数据进行分组[重复]
【发布时间】:2011-03-23 01:15:26
【问题描述】:

可能重复:
comma-separated list as a result of select statement in Oracle

我在 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

【问题讨论】:

  • Welcome to StackOverflow!什么种类的桌子? HTML? SQL?卡片?你试过什么了?帮助我们来帮助你!请编辑您的问题;就目前而言,它无法回答,应该关闭。
  • 它是一个 SQL 表,我正在使用 oracle 91 数据库来提取此信息并在报告中生成它。
  • @Pranu。谢谢。 ...到目前为止,您尝试了什么?
  • 我是 sql 新手,我想我必须使用 group by,set 操作,但不知道如何避免在第一列中重复名字。
  • 提供尽可能多的细节很重要,因为例如,我知道如何为 SQL Server(使用 XML PATH)执行此操作,但不知道如何在 oracle 中执行此操作。

标签: sql oracle string-aggregation


【解决方案1】:

对于 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    相关资源
    最近更新 更多