Псевдоним таблицы с объединением все не работает
У меня есть ora-00094 (идентификатор недействителен) в простом запросе, но я не понимаю, почему. Не могли бы вы мне помочь, пожалуйста?
select columnA, 'More than 4000 bytes'
from tableA
union all
select p.columnB, listagg(p.columnC, ',') within group (order by p.columnC)
from (
select distinct b.job_name, a.hostname
from tableB a, emuser.def_job b
) p
group by p.columnB
order by p.columnB desc;
1 ответ
Решение
ORDER BY для ResultSet всего запроса. Таким образом, для ORDER BY здесь нет столбца B. ResultSet имеет только имена столбцов первого запроса.
Попробуй это
SELECT columnA, 'More than 4000 bytes' as columnC FROM tableA
UNION ALL
SELECT p.columnB, LISTAGG (p.columnC, ',') WITHIN GROUP (ORDER BY p.columnC)
FROM (SELECT DISTINCT b.job_name, a.hostname
FROM tableB a, emuser.def_job b) p
GROUP BY p.columnB
ORDER BY p.columnA DESC;