【发布时间】:2018-07-31 14:33:23
【问题描述】:
我是 Oracle 的新手。我想将此 Oracle 查询转换为 PostgreSQL。但我不明白 'start_date + level-1' 是什么意思。什么是'v'?这些术语:LEVEL、CONNECT BY 对我来说是新的。我查看了一些示例以了解 WITH、CONNECT BY、LEVEL 通常的含义。但是我仍然不知道如何将其转换为 postgreSql。
WITH t AS
(
SELECT start_date + level-1 As date1
FROM
(
SELECT created_at date1, last_date As date2 FROM dual
) v
CONNECT BY date1 + level-1 <= date2
)
SELECT ( ..... )
我的 PostgreDB 中有 tablefunc 扩展。在几篇文章中了解这一点。有人可以简要解释一下这里发生了什么并帮助我将其转换为 postgreSql 吗?另外,如果您可以提供任何可以清楚解释这些术语的链接,那对我来说将是非常有益的。
谢谢。
【问题讨论】:
-
问题是你表中的一个字段吗?
-
level是一个 Oracle 关键字,用于其分层查询功能。这就是connect by语法。基本上,您拥有的代码是一个 Oracle 技巧,用于生成两个边界之间的日期范围。
标签: sql database oracle postgresql oracle11g