Моих данных в Oracle есть что-то вроде этогоSQL множественного выбора запрос с XMLAgg функции- данных не запряженными в требуемой моде
NAME | DEP_VALUE | ID_DEP
Amy 1 AA1234
Bob 2 BB4321
Clara 1 CC5678
Clara 2 CC7890
John 1 JJ6543
John 2 JJ7865
John 3 JJ7654
Tom 1 TT0987
Tom 2 TT6541
Tom 3 TT4087
Tom 4 TT3409
мне нужно данные потянуться таким образом
NAME | DEP_VALUE | ID_DEP
Amy 1 AA1234
Bob 2 BB4321
Clara 1;2 CC5678;CC7890
John 1;2;3 JJ6543;JJ7865;JJ7654
Tom 1;2;3;4 TT0987;TT6541;TT4087;TT3409
Мой запрос выглядит следующим образом
SELECT name,
Rtrim(Xmlagg (Xmlelement (e, dep_value
|| ';')).extract ('//text()'), ','),
Rtrim(Xmlagg (Xmlelement (e, id_dep
|| ';')).extract ('//text()'), ',')
FROM (SELECT emp_name,
dep.dep_value,
dep.id_dep
FROM emp
inner join dep
ON emp.name = dep.name
WHERE id_name IN (SELECT name
FROM altname
WHERE id_emp IN (SELECT id_emp
FROM cnames
WHERE emp_lvl LIKE '%GGG%')))
GROUP BY name,
dep_value
Результат, который отображается в
NAME | DEP_VALUE | ID_DEP
Amy 1; AA1234;
Bob 2; BB4321;
Clara 1; CC5678;
Clara 2; CC7890;
John 1; JJ6543;
John 2; JJ7865;
John 3; JJ7654;
Tom 1; TT0987;
Tom 2; TT6541;
Tom 3; TT4087;
Tom 4; TT3409;
Как я могу вытащить данные, как во 2-й таблице? Какая ошибка в моем sql-запросе?
Спасибо вам большое, что вы так хорошо !!!!!! – Raghu
Еще одна вещь. В запросе выше часть в "extract ('// text()'), ',')" на самом деле должна быть "extract ('// text()'), ';')". В противном случае id_dep будет выглядеть как JJ6543; JJ7865; JJ7654; вместо JJ6543; JJ7865; JJ7654. Будет дополнительный «;» в результате. – Raghu
@ Raghu - Хорошая точка. Обновлен мой ответ. –