我的要求是如果两个具有相同日期的表需要在单行中给出 eq 的输出
| A 栏 | B 栏 |
| -------- | -------- |
|单元 1 |单元 2 |
|细胞 3 |细胞 4 |
| AA 栏 | BB栏|
| -------- | -------- |
|单元 1 |单元 5 |
|细胞 3 |细胞 6 |
输出应为
| A 栏 | B 栏 |
| -------- | -------- |
|单元 1 |单元 2、单元 5 |
|细胞 3 |细胞 4、细胞 6 |
这可能吗
您需要
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 特定语法。
在 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;