Oracle sql использование подзапроса для группировки результатов нескольких строк в одну строку - PullRequest
0 голосов
/ 09 марта 2020

Я использовал LISTAGG, который кому-то здесь помог, но после нескольких полей выбора я начал получать ошибку ORA. Я бы предпочел использовать подзапрос Oracle, чтобы сгруппировать результаты нескольких строк в одну строку. В прошлом я использовал STUFF в sqlserver, чтобы сделать это, как бы я сделал это на Oracle.

У меня есть следующий запрос

select d.id, d.name, d.date_sale, d.address, d.city, d.state, d.zipcode, d.description, d.explanation, d.received_date, 
       SELECT (dd.my_id, dd.customer_name, dd.category, dd.transaction_date, ';' 
       ) AS GROUPED_COLUMNS
from table1 d
left join table2 dd on d.id = dd.my_id
where d.id =1 and d.isActive =1

1 Ответ

1 голос
/ 09 марта 2020

Вы можете сделать:

select d.* 
       (select list_agg(dd.my_id || dd.customer_name || dd.category || dd.transaction_date, ';') within group (order by transaction_date)
        from table2 dd
        where d.id = dd.my_id
       ) AS GROUPED_COLUMNS
from table1 d
where d.id = 1 and d.isActive = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...