oracle使用with递归查询
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递归查询相关推荐
- oracle中的递归查询
一.oracle中的递归查询上下级部门关系 采用的语法为 start with ... connect by ..... = prior .... 我们部门表中存在这样几条记录 id parent_i ...
- sql oracle 递归查询语句,oracle递归函数 oracle中SQL递归查询
关于oracle递归调用的自定义函数如何结束 比如存储过程a中有b,b中含a.用return结束判断,执行还是锁表,怎么解决 关于oracle递归调用的自定义函数如何结束 可以调用. C语言最基本的模 ...
- Oracle中SQL递归查询
SQL的递归查询应用场景: 在一个系统中往往需要保存机构,地区,岗位,商品品类,菜单等等树状结构的数据,使用递归查询能够快速的获取这些树状结构数据的关联关系.树结构的数据存放在表中,数据之间的层次关系 ...
- ORACLE中使用递归查询
在数据库查询中常常会碰到要查询树形结构的数据,需要用一个字段的数据当做下一条记录的父节点继续查询,如果在不知道有多少级节点的情况下一次次手写SQL查询会很繁琐而没有效率,这时可以使用 oracle中的 ...
- oracle 中的递归查询
本文整理自网络: 一.树型表结构: 节点ID 上级ID 节点名称 二.公式: select 节点ID,节点名称,level from 表 connect by prior 节点ID=上级节点ID ...
- Oracle笔记 之 递归查询
递归查询 在信息系统中需要数据字典表等树状结构的数据,使用递归查询能够快速地获取树状结构数据的关联关系. 树状结构的数据存放在数据表中,数据之间的层次关系(父节点与子节点)通过表的列与列之间的关系来描 ...
- 关于Oracle数据库start whith 递归查询的另类认知
众所周知,Oracle数据库的递归查询是 start whith connect by prior 方法,我们在查询上下级部门或组织架构的时候常常会用到它, 其主要的用法为 select 部门编号 f ...
- oracle获取所有子节点,oracle递归查询所有子节点
Q4:Oracle通过递归查询父子兄弟节点方法示例 前言 说到Oracle中的递归查询语法,我觉得有一些数据库基础的童鞋应该都知道,做项目的时候应该也会用到,下面本文就来介绍下关于Oracle通过递归 ...
- oracle循环递归查询,Oracle 递归查询的用法
Oracle数据库中常要处理一些父子关系的记录,在OLTP中要用得多一些,oracle提供了递归查询可以很容易的满足这个需求,oracle的递归查询通过start with [condition] c ...
最新文章
- tcl c语言笔试题,TCL技术类笔试题目.doc
- MapReduce1.x与MapReduce2.x差异
- PHP (20140506)
- VS 2010 OpenGL 配置与实例开发
- python嵩天课后题及答案第二章_课后参考答案-第二章部分习题参考答案
- MySQL查询指定时间的数据
- 架构组件:基于shard-jdbc中间件,实现数据分库分表
- mysql数据库mha_MySQL高可用性大杀器之MHA
- powerbuilder防止反编译: pbkiller无法解析的部分公布
- 小迪安全第10天 信息收集,资产监控拓展
- 改变鼠标样式的两种方法
- ExecutionException 异常类解析
- Java实现三角形图案绘制**
- 如何架设一个属于自己的Discuz论坛
- spug上线服务踩坑记
- java导出jar包后,程序运行时读取图片、音乐资源文件
- Ubuntu 8.04 AMD64平台下Realplayer 11安装指南
- Oracle 12.2新特性掌上手册 - 第一卷 Availability
- java抓取世界国家国旗
- iOS使用OCLint做静态代码分析
热门文章
- 计算机弹音乐薛之谦的歌曲,薛之谦 万能音符(The Key) 薛之谦歌曲,薛之谦mp3在线试听 - 5nd音乐网...
- fpga 级联fifo(VHDL)
- 连接到系统上的设备没有发挥作用解决方案
- 关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = ,urlPatterns = ))配置问题——WebServlet注解
- APP下载量全面概述,含统计方法
- Home键监听与电源键
- 【JavaSE】Java9Java10Java11新特性(687~717)
- 在Deepin 15.11系统中遇到微信版本过低不能登录的解决方法
- Google Docs Viewer在线打开阅读PDF、Word、PPT、Excel等
- 我们该如何全面提高程序的可读性