При помощи функции «row()» мы можем создавать записи — данные с типом record.
-- Создаём данные с типом record select row(77, 99); -- Обращение к первому элементу select (row(77, 99)).f1; --77 -- Обращение ко второму элементу select (row(77, 99)).f2; --99
Для нескольких записей с типом record ситуация будет точно такая же.
-- Создание записей с типом record -- Приведение всех столбцов к одному столбцу select row(T.*) from ( select 44,77 union select 55,99 ) as T -- Обращение к анонимным столбцам по их номерам -- Получим значения первого столбца select (row(T.*)).f1 from ( select 44,77 union select 55,99 ) as T -- Получим значения второго столбца select (row(T.*)).f2 from ( select 44,77 union select 55,99 ) as T
Важно учитывать то, что вызов функции «row()» приводит к неочевидному созданию столбцов с именами вида «f1», «f2», «f3» и так далее.