我需要将这些单独的行合并到一列,我现在如何通过逗号分隔合并列,
+---------------+-------+-------+
|CID |Flag |Value |
+---------------+-------+-------+
|1 |F |10 |
|1 |N |20 |
|2 |F |12 |
|2 |N |23 |
|2 |F |14 |
|3 |N |21 |
|3 |N |22 |
+---------------+-------+-------+
期望的结果可以是任何东西,
+-----------+----------------------------+ +--------------------------+
|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 |
+-----------+----------------------------+ +--------------------------+
Note:
任何带有小例子的正确方向提示就足够了
EDIT :我的表中有大量数据,例如存在父母和孩子关系的数千条记录。我必须通过逗号分隔值将其转储到文本文件中作为记录。认为主记录与许多其他表有关系,那么所有这些记录都必须打印为一大行。
我试图通过创建查询来实现,以便负载可以分布在数据库上,而我在业务中唯一需要担心的就是将逻辑转储到文本文件或我们将来需要的任何形式中。
您可以尝试使用LISTAGG http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0058709.html你的查询将如下所示:
select a.cid, a.cid || listagg(a.flag || '|' || a.value, ',')
from foo.dat a
group by a.cid
您可以使用不同的分隔符,当然还可以调整结果的格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)