gpt4 book ai didi

postgresql - 通过日期范围循环 postgresql 函数

转载 作者:行者123 更新时间:2023-11-29 12:36:47 27 4
gpt4 key购买 nike

我有一个用户定义的函数。 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)中获得的行为相同。上面的查询中没有星号,但添加一个会导致错误。

最佳答案

将函数调用放在 FROM 子句中:

select f.*
from
generate_series('2015-01-01'::date,'2016-01-27','1 day') s(a),
myfun(a::date) f;

或使用更正式的语法:

select f.*
from generate_series('2015-01-01'::date,'2016-01-27','1 day') s(a)
cross join myfun(a::date) f;

这种形式的 FROM 子句称为横向连接

关于postgresql - 通过日期范围循环 postgresql 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35050012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com