Я хочу объединить несколько строк в одну строку в oracle. Вот что я пытаюсь достичь
таблица дел
case_id Name
1 AAA
2 BBB
Таблица тем
case_id Subject
1 ENG
1 MATH
1 SCI
2 ENG
2 HIS
Таблица SUB_LOOKUP
Abbr Subject
ENG English
MATH Mathematics
SCI Science
HIS History
Ожидаемый результат
1 AAA English, Mathematics, Science
2 BBB English, History
Я попытался использовать функцию LISTAGG, как показано ниже. Он перечисляет то, чего я хотел бы достичь, но проблема возникает, когда я соединяюсь с таблицей поиска, а затем присоединяюсь к основной таблице.
SELECT c.case_id, c.category_id, LISTAGG(cs.special_interest_cd) WITHIN GROUP
(ORDER BY cs.special_interest_cd) AS description
FROM CASE_SPECIAL_INTEREST cs, cases c
where c.case_id = cs.case_id
GROUP BY c.case_id;
Попытка объединения двух таблиц, но при получении "ORA-00979: не GROUP BY Выражение «Может кто-нибудь помочь с присоединением к 3 таблицам. Можно ли добиться того же самого без LISTAGG, поскольку я читал, что он бросает eception, когда максимальный символ достигнут для varchar?