- 浏览: 410448 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (347)
- java基础 (58)
- ajax (10)
- s2sh (10)
- 版本控制 (4)
- 数据库 (34)
- 服务器 (4)
- 开发工具 (8)
- javascript (15)
- soockte (5)
- ext (2)
- 环境搭建 (7)
- struts2 (9)
- 找工作中的面试技巧 (2)
- 承接网站零活 (0)
- JNI+JONSE+OGNL (8)
- 性能优化 (4)
- Android开发 (5)
- xul (8)
- jquery (2)
- 线程 (3)
- jsp+jdbc (7)
- servlet (2)
- java对xml操作 (1)
- IO流的操作 (10)
- 项目开发前配置 (1)
- css (0)
- 上传、下载 (2)
- 知识探讨 (2)
- html (2)
- HQL (0)
- 工作技巧 (1)
- IT (1)
- Hibernate杂谈 (10)
- Spring杂谈 (35)
- DWR (5)
- JUnit测试 (3)
- EasyMock测试web (1)
- ibatis (6)
- maysql (5)
- C++ (0)
- 正则表达式(解剖) (1)
- 密码安全 (2)
- 上传 (1)
- socket (1)
- jni(java与c++结合) (1)
- jdk版本问题 (0)
- tomcat版本问题 (5)
- linux基本命令(初学) (7)
- linux项目发布 (1)
- 3年的经验总结 (1)
- 加解密 (2)
- 高级java阶段 (2)
- java内存分区 (1)
- 浏览器 (1)
- 职业规划 (1)
- 管理 (5)
- java语音 (1)
- SSH (1)
- jsp (3)
- extjs (1)
- uml (2)
- 加密 (1)
- web (2)
- Ant (1)
- 自述 (1)
- Linux (1)
- ssh源码解剖 (1)
- 代码优化 (1)
- 设计模式 (0)
- xml (2)
- JOSN (1)
- scala (0)
- hadoop (0)
- spark (0)
- hana (1)
- shior (1)
- java Word (6)
- java PDF (4)
- java Excel (0)
最新评论
-
高级java工程师:
ztao2333 写道谢谢。收藏下这个总结。呵呵
温习jdk和tomcat -
ztao2333:
大写的,不是大学的
温习jdk和tomcat -
ztao2333:
谢谢。收藏下这个总结。
温习jdk和tomcat -
the_small_base_:
你好,可以提供调用方法吗?需要的Jar,能发下源码吗?谢谢
java实现语音 -
高级java工程师:
文思涌动 写道楼主新年好。可否再传一遍给我,我没有收到, 不清 ...
s2sh整合
有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到,但是在数据库中,用SQL语句怎么实现?下面我以最典型的树形结构来说明下如何在Oracle使用递归查询。 为了说明方便,创建一张数据库表,用于存储一个简单的树形结构 Sql代码 1. create table TEST_TREE 2. ( 3. ID NUMBER, 4. PID NUMBER, 5. IND NUMBER, 6. NAME VARCHAR2(32) 7. ) ID是主键,PID是父节点ID,IND是排序字段,NAME是节点名称。初始化几条测试数据。 引用 ID PID IND NAME 1 0 1 根节点 2 1 1 一级菜单1 3 1 2 一级菜单2 4 1 2 一级菜单3 5 2 1 一级1子1 6 2 2 一级1子2 7 4 1 一级3子1 8 4 2 一级3子2 9 4 3 一级3子3 10 4 0 一级3子0 一、基本使用: 在Oracle中,递归查询要用到start with 。。。。connect by prior。。。 具体格式是: Sql代码 1. SELECT column 2. FROM table_name 3. START WITH column=value 4. CONNECT BY PRIOR 父主键=子外键 对于本例来说,就是: Sql代码 1. select d.* from test_tree d 2. start with d.pid=0 3. connect by prior d.id=d.pid 引用 ID PID IND NAME 1 0 1 根节点 2 1 1 一级菜单1 5 2 1 一级1子1 6 2 2 一级1子2 3 1 2 一级菜单2 4 1 2 一级菜单3 7 4 1 一级3子1 8 4 2 一级3子2 9 4 3 一级3子3 10 4 0 一级3子0 我们从结果中可以看到,记录已经是按照树形结构进行排列了,但是现在有个新问题,如果我们有这样的需求,就是不但要求结果按照树形结构显示,还要根据ind字段在每一个分支内进行排序,这个问题怎么处理呢?我们可能很自然的想到如下语句: Sql代码 1. select d.* from test_tree d 2. start with d.pid=0 3. connect by prior d.id=d.pid 4. order by d.ind ID PID IND NAME 引用 1 0 1 根节点 2 1 1 一级菜单1 5 2 1 一级1子1 6 2 2 一级1子2 4 1 2 一级菜单3 10 4 0 一级3子0 8 4 2 一级3子2 9 4 3 一级3子3 7 4 1 一级3子1 3 1 2 一级菜单2 这显然不是我们想要的结果,那下面的这个语句呢? Sql代码 select d.* from (select dd.* from test_tree dd order by dd.ind) d start with d.pid=0 connect by prior d.id=d.pid 引用 ID PID IND NAME 1 0 1 根节点 2 1 1 一级菜单1 5 2 1 一级1子1 6 2 2 一级1子2 4 1 2 一级菜单3 10 4 0 一级3子0 8 4 2 一级3子2 9 4 3 一级3子3 7 4 1 一级3子1 3 1 2 一级菜单2 这个结果看似对了,但由于一级菜单3节点下有一个节点的ind=0,导致一级菜单2被拍到了3下面。如果想使用类似这样的语句做到各分支内排序,则需要找到一个能够准确描述菜单级别的字段,但是对于示例表来说,不存在这么一个字段。 那我们如何实现需求呢?其实Oracle9以后,提供了一种排序“order siblings by”就可以实现我们的需求,用法如下: Sql代码 1. select d.* from test_tree d 2. start with d.pid=0 3. connect by prior d.id=d.pid 4. order siblings by d.ind asc 结果如下: 引用 ID PID IND NAME 1 0 1 根节点 2 1 1 一级菜单1 5 2 1 一级1子1 6 2 2 一级1子2 3 1 2 一级菜单2 4 1 2 一级菜单3 10 4 0 一级3子0 7 4 1 一级3子1 8 4 2 一级3子2 9 4 3 一级3子3 这样一来,查询结果就完全符合我们的要求了。
发表评论
-
SQL总结存储过程
2017-02-16 10:13 392概念 存储过程(Stored Procedure):已预编译 ... -
oracle设置定时任务job调度执行存储过程或pl/sql代码块
2017-02-16 09:53 438目前oracle数据库设置定时任务job调度一般有两种方式,分 ... -
sql大全
2013-07-12 19:02 1038经典SQL语句大全 一、基础 1、说明: ... -
Linux安装mysql——源码安装
2013-06-05 09:17 7911.假设已经有mysql-5.5.10.tar.gz以及cma ... -
hql语句集合
2013-04-21 19:13 1079/** * */ package com.b510 ... -
oracle命令导入dmp文件与给用户受权
2012-05-03 15:57 1018创建账号:CREATE USER vdrs IDENTIFIE ... -
oracle对日期进行操作
2012-03-19 15:41 1253一下心血来潮,把部分Oracle对时间的一些处理,整理了一下, ... -
如何查出同一张表中字段值重复的记录
2012-03-17 09:45 1599比如现在有一人员表(表名:peosons) 若想将姓名、身份证 ... -
数据库驱动大全
2011-12-26 09:47 932经常因为链接字符串记不住或者记错的原因浪费时间,终于有时间把常 ... -
用JSP导出ORACLE的数据表DDL
2011-12-08 10:47 1115EXPDDL.JSP <%@ page cont ... -
jsp脚本实现本分数据库
2011-12-08 10:44 899JSP导出Oracle数据表是一个在开发应用时的常用的操作,那 ... -
oracle创建id自增及相关增删改查操作
2011-11-21 16:46 992新建下载权限记录表 DOWNLOADPOPE_TAB ... -
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connec
2011-10-28 15:43 1282WARN: SettingsFactory,103 - Cou ... -
oracle安装及使用
2011-10-16 23:50 925安装后数据库 1.使用plsql打开,一般选项 口 ... -
mysql中递归树状结构
2011-10-10 17:20 11386在Oracle 中我们知道有一个 Hierarchic ... -
级联删除和级联修改
2011-06-22 14:08 2816曾经因为级联删除的问题浪费了N多时间,顾此在这里写下小小心得, ... -
mysql解决乱码问题?
2011-06-15 14:33 831mysql数据库,乱码解决 ... -
MySql
2011-06-14 16:12 8501.安装之后 2.创建数据库 s2sh(库名) creat ... -
数据库死锁的解释?以及什么是死锁
2011-04-25 10:41 857什么是数据库死锁 每个使用关系型数据库的程序都可能 ... -
oracle控制约束
2011-04-11 17:19 751Oracle约束的启用和停用 ...
相关推荐
《可变抽样率的递归数字滤波器》 在数字信号处理领域,滤波器扮演着至关重要的角色,而递归数字滤波器作为其中的一种,因其结构简单、性能优良而备受青睐。可变抽样率(Variable Sample Rate, VSR)技术的引入,...
二叉树深度 二叉树前序遍历 递归实现 二种非递归实现 二叉树中序遍历: 递归实现 非递归实现 二叉树后序遍历: ...二叉树层次创建,创建方法遵循卡特兰数 http://write.blog.csdn.net/postedit/17380455
本文实例讲述了C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法。分享给大家供大家参考,具体如下: /*求二叉树叶子节点个数 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include #...
在本示例中,递归实现的函数gcd_test_two通过不断地让较大数除以较小数的余数来缩小问题规模,直到余数为零,此时较小数即为两数的最大公约数。 非递归算法通常指的是迭代算法,它是通过循环结构逐步逼近解的过程。...
遍历递归的先中後序, 非递归的先中後序, 计算出深度 结点数 /* 运行结果: ------------------------ 请先序输入二叉树(如:ab三个空格表示a为根节点,b为左子树的二叉树) ab c 先序递归遍历二叉树: a b c 先序...
标题中的“凑数字 凑金额 的最佳递归程序”指的是一个使用递归算法解决特定问题的程序,其目标是在一组给定的数字中找到最佳组合,使得这些数字相加尽可能接近或者等于一个预设的目标金额。这样的问题在实际生活中...
凑数字凑金额的最佳递归程序
《数理》递归论是一本深入探讨递归理论的学术著作,涵盖了算子、初等函数集、原始递归函数、递归函数集、递归可枚举集、判定问题以及谱系与计算复杂性等多个核心主题。下面将详细阐述这些知识点。 1. **算子**:在...
### ABAP简单递归算法解析 #### 一、引言 ABAP(Advanced Business Application Programming)是一种用于SAP系统的编程语言。它不仅支持传统的过程化编程,还支持面向对象编程和Web开发。本文将深入探讨一个ABAP中...
组合是指在不考虑顺序的情况下,从N个不同元素中选择M个元素的方法数。在数学上,这通常用组合公式表示为C(N,M)或n choose m,其中C(N,M) = N! / [M!(N-M)!],!代表阶乘。 递归方法通常基于回溯思想,即通过不断地...
- **斐波那契数列**:经典的递归例子,第n个斐波那契数是前两个数之和,递归公式为F(n) = F(n-1) + F(n-2),基础情况是F(0)=0,F(1)=1。 - **阶乘计算**:n! = n * (n-1)!,基础情况是1! = 1。 5. **效率与栈空间...
### 用递归算法实现整数逆序 #### 背景与意义 在计算机科学领域,递归算法是一种常用且强大的技术手段。通过将问题分解为更小规模的子问题来解决,递归能够有效地简化复杂度较高的计算任务。本篇文章主要探讨如何...
文章中提到了一个具体的例子,即滤波器系数\( g(n)=[1,0.3,0.8,0.3,0] \),以及相应的非递归数字滤波器传输函数\( H(\omega)=1+0.6\cos(\omega)+0.2\cos(3\omega) \)。当应用到FOURIER重叠数字滤波器中时,通过将...
### 递归算法求两个数的最大公约数 #### 1. 递归方法解析 **递归算法**是一种解决问题的方法,其中函数通过调用自身来解决问题。递归算法的关键在于找到一个基本结束条件(base case),以及如何将问题分解成更小...
C++递归程序的概念及其执行过程 递归是计算机科学中的一个核心概念,它是一种解决复杂问题的方法,通过将大问题分解为规模更小、更容易解决的小问题来实现。在程序设计中,递归允许程序调用自身来处理这些分解后的...
递归的递增进位制数法和递归的递减进位制数法生成全排列。效率比传统的递增递减进位制数法
递归实现十进制数从高位到低位依次输出 主要是我对递归算法的初步理解后试手制作希望对你有用
标题 "N个数全排列的非递归算法" 涉及的是计算机科学中的经典问题——全排列。全排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能组合。在这个场景中,非递归算法指的是不依赖递归...
在编程领域,递归函数是一种基于函数自身调用自身的编程技术,它在C语言中有着广泛的应用。递归是解决复杂问题的一种有效方法,尤其在处理数据结构如树和图,以及各种算法如排序和搜索时。本篇将深入探讨递归函数的...