Насколько я понял, вам нужно описание на английском языке (language = 2
) в виде столбца KEY_EVENT
, а также список всех существующих описаний на других языках.Пожалуйста, посмотрите на этот синтаксис.Я также приложил демонстрацию, которая показывает, как этот запрос работает с данными, которые вы предоставили.
dbfiddle demo
select trans, t2.app,
nvl(max(case when language = 2 then description end), 'NULL') key_event,
listagg(description, ', ') within group (order by t1.language) list
from table2 t2
left join table1 t1 on t1.app = t2.app
group by trans, t2.app
order by trans;
Похоже, 12
и 27
также являются описаниями на английском языке, если вы хотите использовать их (если 2
отсутствует), запустите:
select trans, t2.app,
coalesce(max(case when language = 2 then description end),
max(case when language = 12 then description end),
max(case when language = 27 then description end),
'NULL') key_event,
listagg(description, ', ') within group (order by t1.language) list
from table2 t2
left join table1 t1 on t1.app = t2.app
group by trans, t2.app
order by trans;