zoukankan      html  css  js  c++  java
  • SqlServer 实现CTE(递归)查询

    寻找良久,终于实现,记个笔记:

    --SqlServer 2005 CTE


    with cte (deptid,dptname,parentid) as (

    --起始条件
    select a.deptid,a.dptname,a.parentid from base_dept a where a.deptid = 2
    union all

    --CTE每次递归条件
    select a.deptid,a.dptname,a.parentid from base_dept a, cte where a.parentid = cte.deptid
    )

    --DTE必须紧跟着SQL语句使用。
    select deptid,dptname,parentid from cte order by dptname;

    附送一个使用CTE的例子:

    --CTE
    with cte (deptid,dptname,parentid) as (
    select a.deptid,a.dptname,a.parentid from base_dept a where a.deptid = 2
    union all
    select a.deptid,a.dptname,a.parentid from base_dept a, cte where a.parentid = cte.deptid
    )
    select a.cdeptid,a.cdeptparentid,count(a.cid) as ccount
    from base_excute_compel a,cte
    where a.CompelTime >= '2010-01-01'
    and a.CompelTime <= '2013-01-01'
    and a.cdeptid in (cte.deptid)
    group by a.cdeptid,a.cdeptparentid

  • 相关阅读:
    hdu 2137
    hdu 2059
    hdu 2175
    hdu 1297
    hdu 1702
    hdu 1212
    hdu 1397
    [转]常见的碱性食品有哪些?
    [转]C#反射
    每个人都有自己的未来
  • 原文地址:https://www.cnblogs.com/smartbooks/p/2653884.html
Copyright © 2011-2022 走看看