zoukankan      html  css  js  c++  java
  • mssql sqlserver with cte表达式(递归)找出最顶值的方法分享

    摘要: 下文通过递归的方式找出最顶级部门的方法分享,如下所示: 实验环境:sql server 2008 R2


    下文通过cte-with表达式实现递归,获取一个公司的顶级部门,如下所示 例:部门表

    create table [maomao365.com]
    (keyId int ,parentId int,
    deptName nvarchar(30))
    
    insert into [maomao365.com]
    (keyId,parentId,deptName)
    values
    (1,0,'总经办'),
    (2,0,'IT中心'),
    (10,1,'销售部'),
    (11,1,'售后部'),
    (111,11,'售后1'),
    (1111,111,'售后1_1'),
    (12,1,'市场部'),
    (21,2,'运维部'),
    (22,2,'开发部')
    
    ---例1:获取 售后部keyId=1111所在的顶级部门
    ;
    with testA( [keyId], [parentid],deptName)
    as
    (
    select keyId, parentid,deptName
    from [maomao365.com]
    where keyId = 1111
    union all
    select a.keyId, a.parentid,a.deptName
    from [maomao365.com] a
    inner join testA on a.[keyId] = testA.[parentId]  --递归
    )
    
    select * from testA where parentId=0;
    
    
    go
    
    truncate table [maomao365.com]
    drop  table [maomao365.com]


    转自:http://www.maomao365.com/?p=7829
  • 相关阅读:
    DOM型XSS(pikachu)
    第十周笔记
    第九周数据结构
    第八周数据结构笔记
    第七周笔记
    第六周笔记
    第五周数据结构
    第四周笔记
    数据结构(第三周)
    数据结构—第二周学习笔记
  • 原文地址:https://www.cnblogs.com/lairui1232000/p/9922217.html
Copyright © 2011-2022 走看看