gpt4 book ai didi

sql - Oracle 中 select 语句结果的逗号分隔列表

转载 作者:行者123 更新时间:2023-12-02 14:21:57 24 4
gpt4 key购买 nike

我有一个名为“person”的表。它包含人员的 ID 及其父 ID(只能有一个父 ID)。作为查询的结果,我想要一个具有第一列(人员 ID)和第二列(其子 ID 列表)的表。具体如何做到这一点?我已经阅读过有关 listagg 函数的信息,但我不确定它是否适合我的目的。此查询生成一个空的第二列:

选择t1.id,(从人员 t2 中选择 t2.id其中 t2.parent_id = t1.id) 来自人 t1其中 t1.status = '父级';

最佳答案

SELECT parent_id,
RTRIM(XMLAGG(XMLELEMENT(e,child_id || ',')).EXTRACT('//text()'),',') AS "Children"
FROM parentChildTable
WHERE parent_id = 0
GROUP BY parent_id

SELECT parent_id,
LISTAGG(child_id, ',') WITHIN GROUP (ORDER BY child_id) AS "Children"
FROM parentChildTable
WHERE parent_id = 0
GROUP BY parent_id

关于sql - Oracle 中 select 语句结果的逗号分隔列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324996/

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