Проблемы с предложением / объединить строку в один столбец - PullRequest
0 голосов
/ 24 апреля 2019

В настоящее время моя цель состоит в том, чтобы, если у меня есть три строки (a, b, z), (c, d, z), (e, f, z). Я объединю их в один столбец (a: b, c: d, e: f, z).

Я пробовал код:


SELECT 
 d.engagement_id, 
(SELECT cf.field + ':' + cf.custom_field_value
     FROM LEFT OUTER JOIN custom_fields cf ON cf.engagement_id = d.engagement_id
     FOR XML PATH('')) [SECTORS]
FROM
    pseudo_table d

В настоящее время говорится, что мне не хватает правильных скобок перед FOR. Любые идеи о том, почему это происходит / добраться до моей цели?

1 Ответ

0 голосов
/ 24 апреля 2019

В Oracle вы должны использовать listagg():

SELECT d.engagement_id, 
       LISTAGG(cf.field || ':' || cf.custom_field_value, ', ') WITHIN GROUP (ORDER BY cf.field) as sectors
FROM pseudo_table d LEFT OUTER JOIN
     custom_fields cf
     ON cf.engagement_id = d.engagement_id
GROUP BY d.engagement_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...