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 的用法相关推荐

  1. oracle中的merge into用法解析

    oracle中的merge into用法解析 merge into的形式 MERGE INTO [target-table] A USING [source-table sql] B ON([cond ...

  2. oracle中over()分析函数的用法

    摘自: http://www.poluoluo.com/jzxy/201004/81921.html 百度文库也记载了oracle中over()分析函数的用法 在泡坛子的时候中无意中发现了这个函数,才 ...

  3. oracle中的to_number,Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...

  4. Oracle中to_char()函数的用法

    Oracle中to_char()函数的用法 日期转换: to_char(date,'格式') select to_date('2005-01-01 ','yyyy-MM-dd') from dual; ...

  5. oracle to_char函数格式,oracle 中to_char函数的用法

    一.日期格式转换 to_char(date,'格式'); select to_date('2005-01-01 ','yyyy-MM-dd') from dual; select to_char(sy ...

  6. Oracle中add_months()函数的用法

    Oracle中add_months()函数的用法 查询当前时间n个月以前的时间: select add_months(sysdate,-n) from dual; 查询当前时间n个月之后的时间: se ...

  7. oracle中rollback用法,Oracle中SAVEPOINT和ROLLBACK用法

    savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...

  8. Oracle中游标Cursor基本用法详解

    这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...

  9. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  10. Oracle中ROW_NUMBER() OVER()函数用法

    Oracle中ROW_NUMBER() OVER()函数用法 1. 说明:ROW_NUMBER() OVER() 函数的作用:分组排序 2. 原理: row_number() over() 函数,ov ...

最新文章

  1. sina微博api源码阅读之函数
  2. 生态伙伴 | 轻计划入驻飞书,轻松管理你的项目
  3. scrapy (2)下载图片及存储信息
  4. 开源中国 Chrome 插件,你的好帮手~
  5. Spinner的使用(一):与ArrayAdapter的配合使用
  6. 七牛上传图片html,使用七牛云上传图片
  7. morphia_Morphia和MongoDB:不断发展的文档结构
  8. unity C# 常用算法 和 算法复杂度
  9. 六问阿里云计算安全,全面解析阿里云ECS服务器的计算安全进化之路
  10. PMP培训机构转个圈
  11. 【Kotlin -- 知识点】学习资料
  12. 华中科技大计算机第八次基础作业,华中科技大计算机基础第三次作业.doc
  13. PC端微信自动发送机器人
  14. 从零开始学习UCOSII操作系统15--总结篇
  15. 百度账号 不用手机号注册
  16. python招聘现状-前程无忧 Python 招聘岗位信息爬取和分析
  17. 风险管理可分为哪两类?具体方法是什么?
  18. 电阻介绍及工作原理应用
  19. excel转word_PDF一键转Word、转Excel、转PPT、转Html、转图片软件
  20. 一个渣渣对OLSR的简单理解

热门文章

  1. Java 实现 Springboot 定时任务(每隔一段时间自动执行一次)
  2. 基于jsp+Spring boot的Springboot汽车配件管理系统
  3. vue H5页面唤起手机app(iOS和Android),没有安装则跳转下载页面
  4. 利用快速瞬变负载测试DC /DC转换器简记1
  5. CHAPTER 5 Zabbix 自动发现、自动注册、分布式监控、SNMP监控
  6. 线程 - wait、await 区别
  7. excel如何创建数据库_在Excel中创建电影收藏数据库
  8. 华为交换机默认密码大合集
  9. 松耦合的比较容易理解的解释
  10. 多线程之四:MFC多线程通讯