了解SELECT列表中的集返回函数(SRF)
为什么在SELECT列表中使用Set Returning Function(SRF)与在FROM子句中使用SRF之间在行为上有区别? 例如,对于一个简单的SRF返回2行: CREATE OR REPLACE FUNCTION gen_series(out integer, out int) RETURNS SETOF record AS $$ SELECT 1,1 UNION SELECT 2,2; $$ LANGUAGE SQL; SELECT gen_series(); 返回两个单列行,每个行包含一条记录: => gen_series ------------ (1,1) (2,2) (2 rows) 而SELECT * FROM gen_series();返回记录扩展的两行: => column1 | column2 ---------+--------- 1 | 1 2 | 2 …