我有一个用户定义的功能。 This question显示了如何循环日期。使用这种方法,我尝试了这个查询:
select myfun(a::date) from generate_series('2015-01-01'::date,'2016-01-27','1 day') s(a)
这并不是很有效。它返回的是表格中的单个列:
(10101, "Sample", "test")
(10102, "Sample2", "test2")
实际上应该有三列。它将它们合并为一个。
我注意到,当我省略星号时,这与您在select mytable
等香草查询中获得的行为相同。上面的查询中没有星号,但添加一个会导致错误。
答案 0 :(得分:4)
将函数调用放在FROM子句中:
select f.*
from
generate_series('2015-01-01'::date,'2016-01-27','1 day') s(a),
myfun(a::date) f;
这种形式的FROM子句称为横向连接。