zoukankan      html  css  js  c++  java
  • 求SQL语句递归的算法

    表结构是这样的

    部门    上级部门    
    A           B
    B           C
    C           D
    A           A
    B           B
    C           C

    求一条SQL语句,根据A查其上级部门,查询结果为
    上级部门
    B
    C
    D

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

    用函数
    create table tb (部门 varchar(20),上级部门 varchar(20))

    insert into tb select 'A','B' union all select 'B','C' union all select 'C','D' 
    union all select 'A','A' union all select 'B','B' union all select 'C','C'

    --select * from tb
    create function test_f (@name varchar(20))
    returns @ta table(上级部门 varchar(20))
    as 
    begin 
    --select @name=上级部门 from tb where 部门=@name and 部门!=上级部门
    while exists(select 1 from tb where 部门=@name and 部门!=上级部门)
    begin
    insert @ta select 上级部门 from tb where 部门=@name and 部门!=上级部门
    select @name=上级部门 from tb where 部门=@name and 部门!=上级部门
    end
    return
    end

    select * from dbo.test_f('A')

    删除:
    drop function test_f
    drop table tb

    上级部门                 
    -------------------- 
    B
    C
    D

    (所影响的行数为 3 行)

     
  • 相关阅读:
    java的应用项目
    项目评审ppt的纲要
    Spark环境搭建
    spark 环境搭建坑
    redis cluster 实现
    hadoop环境搭建编译
    centos 网络配置
    自定义shell开头PS1
    Centos. Mac 通过nfs 搭建共享目录
    mac系统中实现vitualBox中访问内网端口
  • 原文地址:https://www.cnblogs.com/sosoft/p/3451118.html
Copyright © 2011-2022 走看看