oracle 中start with 的用法

Posted 滤v镜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中start with 的用法相关的知识,希望对你有一定的参考价值。

oracle 中start with 的用法

 

发表于2013/3/3 23:29:35  40191人阅读

 

分类: Oracle

 

oracle 提供了start with connect by 语法结构可以实现递归查询。

 

1. 一个简单举例:

SQL> select *  from test;

 

BILL_MONTH           DAY_NUMBER MSISDN

-------------------- ---------- --------------------

200803                        1 13800

200803                        3 13800

200803                        2 13800

200803                        2 13801

200803                        4 13804

200803                        5 13804

200803                        7 13804

200803                        8 13804

200803                        6 13802

200803                        6 13801

200803                        7 13801

200803                        8 13801

 

12 rows selected

 

SQL>

SQL> select * from test

  2       start with day_number=1

  3       connect by  prior day_number=day_number-1 and prior msisdn= msisdn

  4      ;

 

BILL_MONTH           DAY_NUMBER MSISDN

-------------------- ---------- --------------------

200803                        1 13800

200803                        2 13800

200803                        3 13800

 

SQL>

 

 

上面的语句查找出了从1开始,并且day_number 逐渐+1 递增的,并且 msisdn 相同的哪些个数据.

 

 

2. start with  connect by 语法结构

 如上面说看到的 例子, 其语法结构为  start with condition  connect by  condition (含 prior 关键字)

start with conditon 给出的seed 数据的范围, connect by  后面给出了递归查询的条件,prior 关键字表示父数据,prior 条件表示子数据需要满足父数据的什么条件。

 

在下面的这个start with connect by 结构中,就表示 查找出了从1开始,父数据的day_number等于子数据的day_number-1而且父数据的msisdn=子数据的msisdn.

 

start with day_number=1

     connect by  prior day_number=day_number-1 and prior msisdn= msisdn

 

以上是关于oracle 中start with 的用法的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中start with connect by prior用法

Oracle中start with...connect by子句的用法

oracle中 start with .. connect by prior.. 用法简介

Oracle高级函数篇之递归查询start with connect by prior简单用法

Oracle数据库关键字用法,MERGE、START WITH 、OVER(PARTITION BY) 、MINUS

Oracle中with as的用法