SQL Server CTE and recursion example

后端 未结 4 1258
臣服心动
臣服心动 2020-11-22 07:03

I never use CTE with recursion. I was just reading an article on it. This article shows employee info with the help of Sql server CTE and recursion. It is basically showing

4条回答
  •  猫巷女王i
    2020-11-22 07:49

        --DROP TABLE #Employee
        CREATE TABLE #Employee(EmpId BIGINT IDENTITY,EmpName VARCHAR(25),Designation VARCHAR(25),ManagerID BIGINT)
    
        INSERT INTO #Employee VALUES('M11M','Manager',NULL)
        INSERT INTO #Employee VALUES('P11P','Manager',NULL)
    
        INSERT INTO #Employee VALUES('AA','Clerk',1)
        INSERT INTO #Employee VALUES('AB','Assistant',1)
        INSERT INTO #Employee VALUES('ZC','Supervisor',2)
        INSERT INTO #Employee VALUES('ZD','Security',2)
    
    
        SELECT * FROM #Employee (NOLOCK)
    
        ;
        WITH Emp_CTE 
        AS
        (
            SELECT EmpId,EmpName,Designation, ManagerID
                  ,CASE WHEN ManagerID IS NULL THEN EmpId ELSE ManagerID END ManagerID_N
            FROM #Employee  
        )
        select EmpId,EmpName,Designation, ManagerID
        FROM Emp_CTE
        order BY ManagerID_N, EmpId
    

提交回复
热议问题