根据 doc
,PostgreSQL 有
SETOF <sometype>
类型,并且 SETOF <sometype>
类型在函数中使用,如下所示:
-- ↓ ↓ ↓ Here ↓ ↓ ↓
CREATE FUNCTION my_func() RETURNS SETOF <sometype>
...
现在,我想手动创建 SETOF <sometype>
类型的值,就像我们可以创建一个数组并手动创建带有
ROW()
的行,如下所示:
SELECT ARRAY[1,2,3]::INT[]; -- {1,2,3}
SELECT ROW(1,'John',27); -- (1,John,27)
那么,如何手动创建SETOF <sometype>
类型的值呢?
VALUES
语句:
VALUES ('someval'::sometype),
('otherval'::sometype),
...;
您可以将这样的语句用作子查询。另一种方法是取消数组的嵌套:
unnest('{someval,otherval}'::sometype[])