首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"connect by“Oracle SQL的替代方案

"connect by“Oracle SQL的替代方案
EN

Stack Overflow用户
提问于 2022-09-08 04:02:42
回答 1查看 48关注 0票数 0

谁能给我一些脚本,做以下相同的,但不使用“连接”?代码运行良好,但我不能在BI发布服务器中使用connect by。

代码语言:javascript
复制
select to_char(to_date('2022-05-01') + (level -1),'YYYY-MM-DD') as read_date 
from dual 
connect by to_date('2022-05-01') + (level -1) <= to_date('2022-05-05')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-08 04:52:28

CONNECT BY是Oracle编写递归查询的固有而简洁的方法。您可以用Oracle自2002年以来一直支持的标准SQL兼容递归查询来替换它。

代码语言:javascript
复制
with read_dates(read_date) as
(
  select date '2022-05-01' from dual
  union all
  select read_date + interval '1' day from read_dates
  where read_date < date '2022-05-05'
)
select to_char(read_date, 'YYYY-MM-DD')
from read_dates;

两点意见:

  • 您自己的代码是粗俗的,因为它使用了依赖会话日期设置的隐式字符串到日期转换(to_date('2022-05-01')),因此可能会不幸地失败。
  • 我们很少选择日期作为字符串(to_char(..., 'YYYY-MM-DD')),因为我们通常希望应用程序知道我们正在选择日期。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73643602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档