使用sql Deviloper单行退出

问题描述 投票:0回答:2

我的要求是如果两个具有相同日期的表需要在单行中给出 eq 的输出

| A 栏 | B 栏 |

| -------- | -------- |

|单元 1 |单元 2 |

|细胞 3 |细胞 4 |

| AA 栏 | BB栏|

| -------- | -------- |

|单元 1 |单元 5 |

|细胞 3 |细胞 6 |

输出应为

| A 栏 | B 栏 |

| -------- | -------- |

|单元 1 |单元 2、单元 5 |

|细胞 3 |细胞 4、细胞 6 |

这可能吗

sql plsqldeveloper
2个回答
0
投票

您需要

UNION
GROUP BY
,如下:

SELECT colA, listagg(colB,',') WITHIN GROUP (order by colB) from
(SELECT colA, colB from table1
UNION
SELECT colAA, colBB from table2)
GROUP BY colA;

注意:使用 Oracle 特定语法。


0
投票

在 Postgres 9+ 上,我们可以使用联合查询以及

STRING_AGG()
:

SELECT A, STRING_AGG(B, ',') AS B
FROM
(
    SELECT A, B FROM T1
    UNION ALL
    SELECT AA, BB FROM T2
) t
GROUP BY A;
© www.soinside.com 2019 - 2024. All rights reserved.