oracle SQL根据条件连接2列

依亚达

假设我有一张桌子:

+----+------------+------------+
| ID |   NAME1    |     NAME2  |
+----+------------+------------+
| A1 |    DAVE    |    DAN     |
| A1 |    DOR     |    MON     |
| A2 |    STEPHAN |    ARKEL   |
| A3 |    ASH     |    CATCHAM |
| A4 |    RON     |    DON     |
| A4 |    OFIR    |    DOL     |
| A4 |    OFRA    |    SOL     |
+----+------------+------------+

我想根据 ID 进行连接,如果下一行具有相同的 ID,则添加两个名称,如下所示:

+----+-----------------------------------+
| ID |             NEW_NAME              |
+----+-----------------------------------+
| A1 |    DAVE~~DAN^^DOR~~MON            |
| A2 |    STEPHAN~~ARKEL                 |
| A3 |    ASH~~CATCHAM                   |
| A4 |    RON~~DON^^OFIR~~DOL^^OFRA~~SOL |
+----+-----------------------------------+

谢谢 。

穿刺者

你可以做:

select
  id,
  listagg(name1 || '~~' || name2, '^^') 
    within group (order by name1, name2) as new_name
from t
group by id

请参阅SQL<>Fiddle 中的运行示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章