Просто читая этот ответ о , используя новый тип для возврата нескольких полей в PostgreSQL.
Так что мы можем сделать это.
CREATE TYPE my_type AS (a text, b text, c text)
CREATE OR REPLACE FUNCTION get()
RETURNS my_type AS
$$
DECLARE
result_record my_type;
BEGIN
SELECT r[1], r[2], r[3]
INTO result_record.a, result_record.b, result_record.c
FROM regexp_split_to_array('a.b.c', '\.') r;
RETURN result_record;
END
$$ LANGUAGE plpgsql;
Мне было интересно, можем ли мы сделать то же самое, не объявляя пользовательский тип в функции и / или используя язык sql
вместо plpgsql
?