Oracle 向上递归、向下递归

---- 向上递归select distinct orgguid,dtb_orgguid,orgname
  from dtba_organization a
  start with orgguid = ‘2117bc0897e543168fd9702216165c77‘
  connect by prior dtb_orgguid = orgguid
orgguid 最小级别  

---- 向下递归
select distinct orgguid,dtb_orgguid,orgname
  from dtba_organization a
 start with dtb_orgguid = ‘5ca832cb82ed487d9b946890692529fe‘ connect by prior orgguid = dtb_orgguid
dtb_orgguid  最大级别

--查询全部资源信息
select * from urm_class_info
--向上遍历树,找到路径直到根节点,指定的是parentid
select distinct classid,parentid,name
from urm_class_info
start with parentid = ‘cmdb0000000000000017‘
connect by prior parentid = classid
--向上遍历树,找到路径直到根节点,指定的是classid,和下面的主要区别就是parentid和classid的位置
select classid,parentid,name
from urm_class_info
start with classid = ‘cmdb0000000000000401‘
connect by prior parentid = classid
--向下遍历整棵树,可以指定classid,来遍历指定节点的树
select classid,parentid,name
from urm_class_info
start with classid = ‘cmdb0000000000000017‘
connect by prior classid = parentid
--向下遍历整棵树,可以指定parentid,来遍历指定parentid节点的树,不包含parentid
select classid,parentid,name
from urm_class_info
start with parentid = ‘cmdb0000000000000017‘
connect by prior classid = parentid 
时间: 2024-11-08 23:11:27

Oracle 向上递归、向下递归的相关文章

3.sql中的向上递归和向下递归

1.向下递归 select * from table_name where 条件 connect by prior bmbm(本级关联条件)=sjbmbm(上级关联条件) start with bmbm(本级关联条件)='610000000000'(本级编码)--包含本级 select * from table_name where 条件 connect by prior bmbm(本级关联条件)=sjbmbm(上级关联条件) start with sjbmbm(本级关联条件)='6100000

sqlserver 树结构递归(向上递归和向下递归)

--获取当前及以下部门 Create proc GetCurrentAndUnderOrg @orgId int as begin WITH cte AS ( SELECT * ,0 AS level FROM Static_Organ WHERE [email protected] UNION ALL SELECT g.*,level+1 FROM Static_Organ g INNER JOIN cte ON g.ParentOrgan=cte.OrganID ) SELECT * FRO

linux下递归删除空目录的bash实例

# $1必须是绝对路径crurl=$1func_hdir(){echo $crurl  cd $crurl  for aitem in `ls -l | grep "^d" | awk '{print $9}'`; do        crurl=$crurl/$aitem        func_hdir $aitem  done dirc=`ls $crurl`  if [ "$dirc" = "" ]  then    echo $crur

递归删除目录下的所有文件

import java.io.File; public class DeleteDirectory { /** * 删除空目录 * @param dir 将要删除的目录路径 */ private static void doDeleteEmptyDir(String dir) { boolean success = (new File(dir)).delete(); if (success) { System.out.println("Successfully deleted empty dir

递归删除目录下的所有文件及子目录下的所有文件

package com.test; import java.io.File; public class FileTest3 { public static void main(String[] args) { // TODO Auto-generated method stub FileTest3.doDeleteEmptyDir("e:\\new_dir1"); String newDir2 = "e:\\Hello"; boolean success = del

练习下递归删除

1 /// <summary> 2 /// 删除按钮 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void button1_Click(object sender, EventArgs e) 7 { 8 Del("D://test")

递归与非递归及其相互转换

一.什么是递归 递归是指某个函数直接或间接的调用自身.问题的求解过程就是划分成许多相同性质的子问题的求解,而小问题的求解过程可以很容易的求出,这些子问题的解就构成里原问题的解了. 二.递归的几个特点 1.递归式,就是如何将原问题划分成子问题. 2.递归出口,递归终止的条件,即最小子问题的求解,可以允许多个出口. 3.界函数,问题规模变化的函数,它保证递归的规模向出口条件靠拢 三.递归的运做机制 很明显,很多问题本身固有的性质就决定此类问题是递归定义,所以递归程序很直接算法程序结构清晰.思路明了.

全排列(递归与非递归实现)

全排列问题在公司笔试的时候很常见,这里介绍其递归与非递归实现. 递归算法 1.算法简述 简单地说:就是第一个数分别以后面的数进行交换 E.g:E = (a , b , c),则 prem(E)= a.perm(b,c)+ b.perm(a,c)+ c.perm(a,b) 然后a.perm(b,c)= ab.perm(c)+ ac.perm(b)= abc + acb.依次递归进行. void swap(string &pszStr,int k,int m) { if(k==m) return ;

二叉树遍历算法总结(递归与非递归)

一:前言 二叉树的遍历方法分四种:前序,中序,后序以及层次遍历. 其中,前中后遍历方法的实现分递归和非递归,非递归遍历的实现需要借助于栈. 实际上,递归的调用就是一种栈的实现,所以,非递归遍历就需要人工借助栈结构来实现. 而层次遍历需要借助队列. 二:前中后序遍历 递归遍历: 递归遍历的思想和方法很简单,通过调整输出语句来实现前,中,后三种遍历. 代码如下: 1 void show(BiTree T) 2 { 3 if(T) 4 { 5 printf("%c ",T->data)