Oracle递归查询

网上摘录。

一、树型表结构:

  节点ID  上级ID  节点名称

二、公式:

  select 节点ID,节点名称,level

       from   表

       connect by prior 节点ID=上级节点ID

       start with 上级节点ID=节点值

      说明:

        1、常见的树形结构为公司组织机构、地区……

    2、求节点ID以上的结构,或以上的结构,将“节点ID=上级节点ID”左右顺序换一下即可。

    3、Level为Oracle的特殊字段,表示“层”的意思。当前节点ID的下一层节点为“1”。

     测试SQL:

            说明1、求002以下(或以上)所有子节点和层次(动态:总是从1开始算),但不包括自身

            说明2、如果求002以上的节点,则“connect by prior topno=departno”,“=”两边的条件换位即可。

            select departno,departname,level

            from dept

            connect by prior departno=topno

            start with topno='002';

      测试数据

        create table Dept(

     DepartNO  varchar2(10),

          DepartName  varchar2(20),

          TopNo    varchar2(10));

          insert into Dept values('001',' 董事会','0');

    insert into Dept values('002','总裁办 ','001');

   insert into Dept values('003','财务部 ','001');

   insert into Dept values('004','市场部 ','002');

   insert into Dept values('005','公关部 ','002');

   insert into Dept values('006','销售部 ','002');

   insert into Dept values('007','分销处 ','006');

   insert into Dept values('008','业务拓展处','004');

   insert into Dept values('009','销售科','007');

 向前查 比如

  select distinct departno,departname,level

  from dept

  connect by prior topno=departno

  start with

  departno='005';

 那么其实是查005自身以及上级, 所以结果是005,002,001

============================================================================================

       写递归最关键的要定义出来 递归函数 ,递归函数 最关键的要定义出来它的 参数 .和它的 返回值 咱么做展现,不用返回值,直接做展现就行了,参数最重要,那就分析一下参数怎么去定义?这时候要分析递归的过程,递归过程什么样呢?根据它的 id 找它的 父id,根据它的 父id 找到它的孩子,根据它 的孩子再找到它的孩子.那么分析这个参数肯定是一个id,因为只有传进来id,才知道怎么去找这个id

转载于:https://www.cnblogs.com/WangJinYang/archive/2012/09/29/2708148.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 函数重载碰到默认的参数

#include<iostream> #include<string> using namespace std;//引用作为重载的条件 void func(int &a) { //非常量引用cout << " this is func" << endl; }void func(const int &a) { // 常量引用 const int &a 10; 合…

wzplayer for android V1.0快出炉了

关注我博客的朋友&#xff0c;发现我很久没有写博客了&#xff0c;因为最近在忙wzplayer 跨平台的事情,前些天在忙wzplayer 的opencv,opengles渲染的事情&#xff0c;最近正式在为wzplayer for android编译折腾.工作将接近尾声. 等待的朋友不要着急&#xff0c;wzplayer for an…

2.Java内存回收机制

一、Java对象在内存引用状态 内存泄露&#xff1a;程序运行过程中&#xff0c;会不断分配内存空间&#xff0c;那些不再使用的内存空间应该即时回收它们&#xff0c;从而保证系统可以再次使用这些内存&#xff0c;如果存在无用的内存没有被回收回来&#xff0c;这就是内存泄漏.…

C++ 对象的初始化和清理

4.2对象的初始化和清理 ●生活中我们买的电子产品都基本会有出厂设置,在某-天我们不用时候也会删除一些自己信息数据保证安全 ●C中的面向对象来源于生活&#xff0c;每个对象也都会有初始设置以及对象销毁前的清理数据的设置。 4.2.1构造函数和析构函数 对象的初始化和清理也是…

VMware-workstation-full-8.0.0-471780.exe

下载地址&#xff1a;http://115.com/file/bhzruvd6完美汉化补丁&#xff1a;http://115.com/file/clq88zcuVMware Workstation 8.0_HA_V3 .exe文件大小&#xff1a;80466532 字节文件版本&#xff1a;8.0.0.471780修改时间&#xff1a;2011年9月24日 10:45:09MD5 &#xff1a;…

查找当前地形位置上的贴图信息

http://answers.unity3d.com/questions/34328/terrain-with-multiple-splat-textures-how-can-i-det.html转载于:https://www.cnblogs.com/klobohyz/archive/2012/10/09/2716627.html

C++ 深拷贝与浅拷贝

#include<iostream> using namespace std; #include<string>class Person {public:Person() {cout << "Person的无参构造函数调用" << endl;};Person(int age) {m_Age age;cout << "Person的有参构造函数调用" << en…

转载]Cyclone II JTAG ASP 配置下载程序

原文&#xff1a;http://blog.sina.com.cn/s/blog_4739958a0100irp7.html 首先&#xff0c;还是那句话&#xff0c;电脑上写好程序.pof文件直接通过JTAG写到FPGA SRAM里&#xff0c;掉电丢失。 只有把.pof写到串行配置器件上&#xff0c;板子上电后串行配置器件EPCS4将程序自动…

C++ 类和对象成员特性

//当类中成员是其他类对象时&#xff0c;我们称该成员为对象成员 //构造的顺序是:先调用对象成员的构造&#xff0c;再调用本类构造 //析构顺序与构造相反 #include <iostream> using namespace std; #include <string>class Phone{public:Phone(string name){m_P…

android surfaceview 清屏

引用&#xff1a;http://www.eoeandroid.com/forum.php?modviewthread&tid40776 12楼 清屏可以用橡皮擦的画笔画一个屏幕大小的矩形就可以了//这是定义橡皮擦画笔Paint clearPaint new Paint();clearPaint.setAntiAlias(true);clearPaint.setXfermode(new PorterDuffX…

C++ 静态成员

静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员 静态成员分为: ●静态成员变量 。所有对象共享同一份数据 。在编译阶段分配内存 。类内声明&#xff0c;类外初始化 ●静态成员函数I 。所有对象共享同一个函数 。静态成员函数只能访问静态成员变量 #include…

ScaleGestureDetector使用注意事项

注&#xff1a;一定要通过view的onTouchEvent调用mScaleGestureDetector.onTouchEvent(ev);&#xff0c;只有这样 才能调用回调函数&#xff1a;onScaleBegin 具体可以参加&#xff1a;android源码&#xff1a;KenBurnsActivity.java 下面是转载的文章&#xff1a; Detects tra…

C++ 静态成员函数

#include <iostream> using namespace std; #include <string>class Person{public://静态成员函数特点://1程序共享一个函数//2静态成员函数只能访问静态成员变量static void func(){cout << "func调用" << endl;m_A 100;//m. _B 100; //…

提高编写CSS代码效率的10个习惯

提高编写CSS代码效率的10个习惯1、保持一贯性。 就像其它的任何事一样&#xff0c;值得一直保持一贯性。保持连贯性&#xff0c;而不是想到什么就给id和class命名什么。 CSS的级联样式有利于加深你的记忆&#xff0c;而且充分利用样式的继承去设置样式表。 首先声明通用的部分的…

hdu 1257 最少拦截系统 (DP)

点击打开链接 #include"stdio.h" int main() {int a[10011],b[10011];int i,j,c,n;while(scanf("%d",&n)!EOF){c1;for(i0;i<n;i)scanf("%d",&a[i]);b[0]a[0];for(i1;i<n;i){for(j0;j<c;j){if(a[i]<b[j])break;}b[j]a[i];if(…

C++ 友元函数

生活中你的家有客厅(Public),有你的卧室(Private) 客厅所有来的客人都可以进去&#xff0c;但是你的卧室是私有的&#xff0c;也就是说只有你能进去 但是呢&#xff0c;你也可以允许你的好闺蜜好基友进去。 在程序里&#xff0c;有些私有属性也想让类外特殊的一些函数或者类进行…

九度1377缓变序列

#include<stdio.h> #include<string.h> int n,m,k,i,j,minN,a[10003]; main() {while(~scanf("%d",&n)){memset(a,0,sizeof(a));minN0x7ffffff,m0,j0;for(i0;i<n;i)scanf("%d",&k),minNminN<k?minN:k,a[k]0?m:0,a[k];if(m1)pr…

关于计算机类课程实验教学的思考

由于计算机机房的限制&#xff0c;没有安装投影仪以及计算机控制管理软件&#xff0c;所以单纯的讲解效果非常不好。老师在上面讲&#xff0c;学生在下面干什么根本不知道。由于教授的实验课和理论课关系不是非常密切。试验的主要内容是网页设计&#xff0c;也就是如何利用Drea…

第四章类和对象 习题答案

一&#xff0e;选择题1.能提供封装的C的下列关键字是&#xff08;C&#xff09;A.whileB. unionC. classD. for2.在下面所列项中&#xff0c;不是面向对象的特点的是&#xff08;C&#xff09;A. 多面性B. 抽象性和封装性C. 多线程和多任务D. 继承性3.下面选项中&#xff0c;对…