zoukankan      html  css  js  c++  java
  • SQL2005的CTE

    use test
    go
    if object_id('Tempdb..#T'is not null
        
    drop table #T
    create table #T(ID int,Name nvarchar(100),parentID int)
    insert #T select 1,'A',0
    insert #T select 2,'B',1
    insert #T select 3,'C',1
    insert #T select 4,'D',3
    insert #T select 5,'E',2

    go

    with t2(ID,Name,parentID,Ord,Lev)
    as
    (
    select *,Ord=cast(right('0000'+rtrim(ID),4as nvarchar(max)),Lev=cast(0 as intfrom #T where ParentID=0
    union all
    select b.*,Ord=a.Ord+cast(right('0000'+rtrim(b.ID),4as nvarchar(max)),Lev=cast(a.Lev+1 as int)from #T b join t2  a on b.ParentID=a.ID
    )
    select 顯示=replicate(char(9),lev)+Name from T2 order by ord option(maxrecursion 0)--用空格替換制表符時用space(lev*2)/replicate(char(9),lev)

    /*
    顯示
    ---------------------------------
    A
      B
        E
      C
        D

    (5 個資料列受到影響)
    */



    ;
    with t2
    as
    (
    select *,Ord=cast(Name as nvarchar(max)),lev=0 from #T where ParentID=0
    union all
    select b.*,Ord=cast(a.Ord+char(9)+b.Name as nvarchar(max)),a.lev+1 from #T b join t2  a on b.ParentID=a.ID 
    )
    select 
        
    [顯示]=Ord 
    from 
        T2
    order by ord 
    option(maxrecursion 0)
    /*

    顯示
    --------------------
    A
    A    B
    A    B    E
    A    C
    A    C    D

    (5 個資料列受到影響)

    */


    --2005多次调用连接时:
    /*
    ;with T(COl)--可指定列名也可不指定
    as
    (......)
    ,T2(Co)
    as
    (......)
    select * from T1 a join T2 b on a.Col=b.COl
    */



  • 相关阅读:
    JSP内置对象
    Java数据结构
    Java引用传递
    椭圆曲线算法的基本原理及实现
    常见的Java异常
    Java数据结构
    Java数据结构
    重拾JSP
    [洛谷P6185] [NOI online 提高]T1 序列
    [题解][BZOJ1299]巧克力棒
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463104.html
Copyright © 2011-2022 走看看