• CTE 学习脚本


    create table product
     (
    ID int identity(1,1) primary key,
    ProductName varchar(20),
    productType varchar(20)
    )
    
     insert product values('羊羊鞋','L')
     insert product values('羊羊鞋','XL')
     insert product values('羊羊鞋','XXL')
     insert product values('羊羊鞋','XXXL')
     insert product values('XX衬衫','L')
     insert product values('XX衬衫','XL')
     insert product values('XX衬衫','XXL')
    ;
     with cte (ProductName,productType)  as
      (   select ProductName,min(productType) from product 
          group by ProductName 
          union all  
          select p.ProductName,convert(varchar(20),p.productType+','+c.productType) from product p 
          inner join cte c on c.ProductName=p.ProductName 
          where p.ProductName=c.ProductName and p.productType>c.productType )
    	select ProductName,max(productType)productType from cte group by ProductName
    

     http://www.cnblogs.com/wenjl520/archive/2010/01/18/1650393.html

    CREATE TABLE Employee_Tree
        (
          Employee_NM NVARCHAR(50) ,
          Employee_ID INT PRIMARY KEY ,
          ReportsTo INT
        )
    
    INSERT  INTO Employee_Tree
    VALUES  ( 'Richard', 1, NULL )
    INSERT  INTO Employee_Tree
    VALUES  ( 'Stephen', 2, 1 )
    INSERT  INTO Employee_Tree
    VALUES  ( 'Clemens', 3, 2 )
    INSERT  INTO Employee_Tree
    VALUES  ( 'Malek', 4, 2 )
    INSERT  INTO Employee_Tree
    VALUES  ( 'Goksin', 5, 4 )
    INSERT  INTO Employee_Tree
    VALUES  ( 'Kimberly', 6, 1 )
    INSERT  INTO Employee_Tree
    VALUES  ( 'Ramesh', 7, 5 )
    ;
    --创建递归查询
    WITH    SimpleRecursive ( Employee_NM, Employee_ID, ReportsTo )
              AS ( SELECT   Employee_NM ,
                            Employee_ID ,
                            ReportsTo
                   FROM     Employee_Tree
                   WHERE    Employee_ID = 2
                   UNION ALL
                   SELECT   p.Employee_NM ,
                            p.Employee_ID ,
                            p.ReportsTo
                   FROM     Employee_Tree p
                            INNER JOIN SimpleRecursive A ON A.Employee_ID = p.ReportsTo
                 )
        SELECT  sr.Employee_ID AS empid ,
                sr.Employee_NM AS Emp ,
                et.Employee_NM AS Boss
        FROM    SimpleRecursive sr
                INNER JOIN Employee_Tree et ON sr.ReportsTo = et.Employee_ID
    
  • 相关阅读:
    C# 之 判断或设置以管理员身份运行程序
    幻灯片母版 讲义母版 备注母版 区别 技巧
    ArcGIS中国工具2.5正式发布
    ArcGIS教程:曲率
    arcgis pro行列转换
    在 Python 中使用 in_memory 工作空间
    ArcGIS10.6的新功能
    ArcGIS Pro 获得工具的个数
    Android Push Notification实现信息推送使用
    SignalR推送服务在Android的实现 SignalA
  • 原文地址:https://www.cnblogs.com/fanxiaojun/p/3188813.html
Copyright © 2020-2023  润新知