首先来参考一下oracle 11.2的新特性,递归查询

http://www.oracle.com/technetwork/cn/articles/hartley-recursive-086819-zhs.html

小试一下使用with递归来解决问题

题目是
啤酒 2元1瓶
      4个瓶盖换1瓶
      2个空瓶换1瓶
10元可以喝几瓶

--------------------------------------------------------------------------------------------------
/*
啤酒 2元1瓶
      4个瓶盖换1瓶
      2个空瓶换1瓶
10元可以喝几瓶
*/
with r(btl,lid,lqr) as
 (select 10 / 2 btl, 10 / 2 lid, 10 / 2 lqr from dual
       -- 初始10元,5个瓶子,5个盖子,5瓶酒
  union all
       -- 递归  
  select mod(btl, 2) + trunc(btl / 2) + trunc(lid / 4) btl,   -- 取模得到剩余瓶子或瓶盖
         mod(lid, 4) + trunc(btl / 2) + trunc(lid / 4) lid, -- 换酒规则,每多一瓶酒,就多一个瓶子和一个瓶盖,多一瓶酒
         lqr + trunc(btl / 2) + trunc(lid / 4) lqr
    from r
   where trunc(btl / 2) != 0 or trunc(lid / 4) != 0 -- 终止条件
 ) select btl "剩余瓶子", lid "剩余瓶盖", lqr "喝了的酒(瓶)" from r;

    剩余瓶子 剩余瓶盖 喝了的酒(瓶)
5 5 5
4 4 8
3 3 11
2 4 12
2 2 14
1 3 15

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

转载于:http://blog.itpub.net/29619999/viewspace-2120253/

oracle使用with递归查询相关推荐

  1. oracle中的递归查询

    一.oracle中的递归查询上下级部门关系 采用的语法为 start with ... connect by ..... = prior .... 我们部门表中存在这样几条记录 id parent_i ...

  2. sql oracle 递归查询语句,oracle递归函数 oracle中SQL递归查询

    关于oracle递归调用的自定义函数如何结束 比如存储过程a中有b,b中含a.用return结束判断,执行还是锁表,怎么解决 关于oracle递归调用的自定义函数如何结束 可以调用. C语言最基本的模 ...

  3. Oracle中SQL递归查询

    SQL的递归查询应用场景: 在一个系统中往往需要保存机构,地区,岗位,商品品类,菜单等等树状结构的数据,使用递归查询能够快速的获取这些树状结构数据的关联关系.树结构的数据存放在表中,数据之间的层次关系 ...

  4. ORACLE中使用递归查询

    在数据库查询中常常会碰到要查询树形结构的数据,需要用一个字段的数据当做下一条记录的父节点继续查询,如果在不知道有多少级节点的情况下一次次手写SQL查询会很繁琐而没有效率,这时可以使用 oracle中的 ...

  5. oracle 中的递归查询

    本文整理自网络: 一.树型表结构: 节点ID  上级ID  节点名称 二.公式: select 节点ID,节点名称,level from 表 connect by prior 节点ID=上级节点ID ...

  6. Oracle笔记 之 递归查询

    递归查询 在信息系统中需要数据字典表等树状结构的数据,使用递归查询能够快速地获取树状结构数据的关联关系. 树状结构的数据存放在数据表中,数据之间的层次关系(父节点与子节点)通过表的列与列之间的关系来描 ...

  7. 关于Oracle数据库start whith 递归查询的另类认知

    众所周知,Oracle数据库的递归查询是 start whith connect by prior 方法,我们在查询上下级部门或组织架构的时候常常会用到它, 其主要的用法为 select 部门编号 f ...

  8. oracle获取所有子节点,oracle递归查询所有子节点

    Q4:Oracle通过递归查询父子兄弟节点方法示例 前言 说到Oracle中的递归查询语法,我觉得有一些数据库基础的童鞋应该都知道,做项目的时候应该也会用到,下面本文就来介绍下关于Oracle通过递归 ...

  9. oracle循环递归查询,Oracle 递归查询的用法

    Oracle数据库中常要处理一些父子关系的记录,在OLTP中要用得多一些,oracle提供了递归查询可以很容易的满足这个需求,oracle的递归查询通过start with [condition] c ...

最新文章

  1. tcl c语言笔试题,TCL技术类笔试题目.doc
  2. MapReduce1.x与MapReduce2.x差异
  3. PHP (20140506)
  4. VS 2010 OpenGL 配置与实例开发
  5. python嵩天课后题及答案第二章_课后参考答案-第二章部分习题参考答案
  6. MySQL查询指定时间的数据
  7. 架构组件:基于shard-jdbc中间件,实现数据分库分表
  8. mysql数据库mha_MySQL高可用性大杀器之MHA
  9. powerbuilder防止反编译: pbkiller无法解析的部分公布
  10. 小迪安全第10天 信息收集,资产监控拓展
  11. 改变鼠标样式的两种方法
  12. ExecutionException 异常类解析
  13. Java实现三角形图案绘制**
  14. 如何架设一个属于自己的Discuz论坛
  15. spug上线服务踩坑记
  16. java导出jar包后,程序运行时读取图片、音乐资源文件
  17. Ubuntu 8.04 AMD64平台下Realplayer 11安装指南
  18. Oracle 12.2新特性掌上手册 - 第一卷 Availability
  19. java抓取世界国家国旗
  20. iOS使用OCLint做静态代码分析

热门文章

  1. 计算机弹音乐薛之谦的歌曲,薛之谦 万能音符(The Key) 薛之谦歌曲,薛之谦mp3在线试听 - 5nd音乐网...
  2. fpga 级联fifo(VHDL)
  3. 连接到系统上的设备没有发挥作用解决方案
  4. 关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = ,urlPatterns = ))配置问题——WebServlet注解
  5. APP下载量全面概述,含统计方法
  6. Home键监听与电源键
  7. 【JavaSE】Java9Java10Java11新特性(687~717)
  8. 在Deepin 15.11系统中遇到微信版本过低不能登录的解决方法
  9. Google Docs Viewer在线打开阅读PDF、Word、PPT、Excel等
  10. 我们该如何全面提高程序的可读性