Sai,
Вы можете попробовать, чтобы увидеть, действительно ли это то, что вам нужно.
Я добавил еще одну строку в исходную таблицу примеров, чтобы проиллюстрировать, как этоSQL будет отображать.
ID TYPE CODE
1 CITY Chicago
1 CITY Dallas
1 CAR SEDAN
1 WEATHER CHILLY
2 WEATHER CHILLY
2 CAR SEDAN
3 CITY Chicago
4 CITY New York
4 CAR SEDAN
Использование этого SQL сделает ваш вывод таблицы более управляемым форматом.
SELECT * FROM
((select id, type, code from TABLE1 t1)
pivot (listagg(code,',') within group (order by type)
for type in('CITY' as CITY,'CAR' as CAR, 'WEATHER' as WEATHER)))
order by id
Это превратит формат таблицы выше в следующую отформатированную записьнабор.
ID CITY CAR WEATHER
1 Chicago,Dallas SEDAN CHILLY
2 (null) SEDAN CHILLY
3 Chicago (null) (null)
4 New York SEDAN (null)
Конечно, если вы хотите поместить кавычки вокруг каждого элемента в выходных данных, вы можете сделать это.
SELECT * FROM
((select id, type, code from TABLE1 t1)
pivot (listagg(''''||code||'''',',') within group (order by type)
for type in('CITY' as CITY,'CAR' as CAR, 'WEATHER' as WEATHER)))
order by id
Это будет отображаться как
ID CITY CAR WEATHER
1 'Chicago','Dallas' 'SEDAN' 'CHILLY'
2 (null) 'SEDAN' 'CHILLY'
3 'Chicago' (null) (null)
4 'New York' 'SEDAN' (null)
Это больше того, что вы ищете?