gpt4 book ai didi

sql - 如何通过逗号分隔将 2 行合并为一行?

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:41 24 4
gpt4 key购买 nike

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

+---------------+-------+-------+
|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 |
+-----------+----------------------------+ +--------------------------+

注意:

Any hint in right direction with small example is more than enough

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

我正在尝试通过创建查询来实现,这样负载就可以分布在数据库上,我在业务中唯一需要担心的就是将逻辑转储到文本文件或我们将来需要的任何形式中。

最佳答案

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

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

您可以使用不同的分隔符,当然还可以调整结果的格式。

关于sql - 如何通过逗号分隔将 2 行合并为一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com