Если вы хотите вернуть одну строку с несколькими столбцами, вы можете использовать record
или some_table
в качестве типа.
Если у вас есть таблица типа movie
, вы можете создать функциюкак это:
CREATE OR REPLACE FUNCTION get_profitable_movie() RETURNS movie AS
Если вы хотите вернуть какой-то произвольный тип, вам нужно будет сделать что-то вроде этого:В строке, вы должны использовать модификатор SETOF
, например:
CREATE OR REPLACE FUNCTION get_profitable_movie() RETURNS SETOF record AS
. Вы можете создать такую функцию:
CREATE OR REPLACE FUNCTION multicolumn_thing() RETURNS record AS $$
DECLARE
r record;
BEGIN
SELECT 1, 2, 3 INTO r;
RETURN r;
END
$$ LANGUAGE 'plpgsql';
и выбрать из нее следующие результаты:*
SELECT
columns.a,
columns.b,
columns.c
FROM multicolumn_thing() AS columns(a int, b int, c int);
С setof
это то же самое, но несколько рядов конечно:)