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 * FROM cte
end

  

 --向上递归
   WITH cte
    AS
    (
        SELECT * ,LevelIndex AS level FROM EL_Departments  WHERE ID=170
        UNION ALL
        SELECT g.*,g.LevelIndex AS level FROM EL_Departments g INNER JOIN cte
             ON g.Id=cte.ParentId
    )

  向上递归和向下递归,其实就是反一反。以上语句因为要用到with as ,所以数据库要sqlserver2005以上。

时间: 2024-08-28 22:40:36

sqlserver 树结构递归(向上递归和向下递归)的相关文章

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

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_

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

采用递归方式查询某目录下的所有文件

private void DirPathAll(string dirpath) { //本目录下的文件 var paths = Directory.GetFiles(dirpath); foreach (var path in paths) { Application.DoEvents(); listBox1.Items.Add(path); } //所有子目录下的文件 var files = Directory.GetDirectories(dirpath); //获取所有子目录 foreac

Linux递归解压缩一个文件夹下的所有文件

gunzip -r hongchangfirst/data 如何递归删除那些剩余的非log结尾的文件? 先列出确认一下: find hongchangfirst/data -type f ! -name "*.log" 然后真正的删除: find hongchangfirst/data -type f ! -name "*.log" -exec rm -f {} \; 记住后边-exec一定要加空格,否则会出现find: missing argument to `-

递归获取指定盘符下的所有文件及文件夹

 /// <summary>         /// 递归获取指定盘符下的所有文件及文件夹         /// 存在部分文件夹访问权限问题         /// </summary>         /// <param name="path">string path = @"G:\"; </param>         /// <param name="filter">strin

递归遍历目录拷贝cdh下的lib到一个目录

destpath='/home/hadoop/soft/hadoop-2.0.0-cdh4.5.0/cdhlib/'jarpath='/home/hadoop/soft/hadoop-2.0.0-cdh4.5.0/share/hadoop/'search='jar' iterdir(){    cd $1    for p in `ls`; do        echo "$p" |grep -q "$search"        if [ $? -eq 0 ]  

用递归列出指定文件夹下的所有文件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace ShowFiles { public partial class Form1

用python递归实现组合,以及关于递归的个人感想

上代码先: def fib(nlist,res): print_list = [] print_list.extend(res) print_list.append(nlist if not nlist else nlist[0]) if len(nlist)==1: print '#############print_list',print_list return temp_list = [] temp_list.extend(nlist) for i in range(len(temp_li