ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用递归来构造无限大的连续数字

用递归来构造无限大的连续数字

原创 Linux操作系统 作者:cc59 时间:2006-07-23 00:00:00 0 删除 编辑


这是昨天在论坛上回答问题:

原问题为:

如:列出2006.7所有的日期:
2006.7.1
2006.7.2
2006.7.3
……
2006.7.31
要求,只能是一个SQL语句,可以嵌套。

想了想. 尽量不用ALL_OBJECTS.

且不嵌大.觉得只能是用CONNECT BY 来递归了:

这是我的回答,主要是CONNECT BY配合ROWNUM来使用.

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as SYS


SQL>
SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
2 from dual
3 connect by rownum <= 31
4 /

TO_DATE('2006-07-'||ROWNUM,'YY
------------------------------
2006-7-1
2006-7-2
2006-7-3
2006-7-4
2006-7-5
2006-7-6
2006-7-7
2006-7-8
2006-7-9
2006-7-10
2006-7-11
2006-7-12
2006-7-13
2006-7-14
2006-7-15
2006-7-16
2006-7-17
2006-7-18
2006-7-19
2006-7-20

TO_DATE('2006-07-'||ROWNUM,'YY
------------------------------
2006-7-21
2006-7-22
2006-7-23
2006-7-24
2006-7-25
2006-7-26
2006-7-27
2006-7-28
2006-7-29
2006-7-30
2006-7-31

31 rows selected

SQL>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/104152/viewspace-139945/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: PCTFREE and PCTUSED
请登录后发表评论 登录
全部评论

注册时间:2007-12-21

  • 博文量
    132
  • 访问量
    308423