如何用逗号分隔将2行合并为一行?

时间:2015-09-16 20:02:39

标签: sql database db2

我需要将这些单独的行合并到一列,我现在如何以逗号分隔的方式合并列,

+-----------+----------------------------+    +--------------------------+
|Part Number| Value                      |    | Value                    |   
+-----------+----------------------------+    +--------------------------+
| 1         | 1|F|10 ; 1|N|20            | Or | 1|F|10 ; 1|N|20          |
| 2         | 2|F|12 ; 2|N|23 ; 2|F|14   |    | 2|F|12 ; 2|N|23 ; 2|F|14 |
| 3         | 3|N|21 ; 3|N|22            |    | 3|N|21 ; 3|N|22          |
+-----------+----------------------------+    +--------------------------+

期望的结果可以是任何东西,

{{1}}

注意:

  

任何正确方向的提示都是绰绰有余的

编辑: 我在表格中有大量数据,例如存在父母和子女关系的数千条记录。我必须通过逗号分隔值将其转储到文本文件中作为记录单行。认为主要记录与许多其他表有关系,然后所有这些记录必须打印为一个大的行。

我正在尝试通过创建查询来实现,因此可以在数据库上分发负载,只有我必须在业务中担心的事情只是将逻辑转储到文本文件或我们将来需要的任何形式。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用LISTAGG,您的查询将如下所示:

select a.cid, a.cid || listagg(a.flag || '|' || a.value, ',') 
from foo.dat a
group by a.cid

您可以使用不同的分隔符,当然也可以使用格式化结果。