Я думаю, вам нужно UNPIVOT
для вашей проблемы:
WITH ALSI_TEST_DELETE AS (SELECT 7 "01", 8 "02", 9 "03", 10 "04", 11 "05", 12 "06", 1 ID FROM dual)
SELECT ID, COLUMN_ID, COLUMN_VALUE
FROM ALSI_TEST_DELETE
UNPIVOT
(COLUMN_VALUE
FOR COLUMN_ID IN ("01","02","03","04","05","06"))
WHERE COLUMN_ID BETWEEN '01' AND '04'
Этот запрос может дать вам начало, и вы можете получить что-то вроде следующего:
SELECT ID, LISTAGG(column_id||': '||column_value,', ') within GROUP (ORDER BY column_id)
FROM ALSI_TEST_DELETE
UNPIVOT
(COLUMN_VALUE
FOR COLUMN_ID IN ("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53"))
WHERE COLUMN_ID BETWEEN :dropdown1 AND :dropdown2
GROUP BY ID