Advertisement
RockField64

SQL CTE Recursion2

Oct 16th, 2021
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.21 KB | None | 0 0
  1. DROP TABLE IF EXISTS Students;
  2. CREATE TABLE Students
  3. (
  4. ID VARCHAR (10),
  5. Name VARCHAR (50),
  6. LeaderID VARCHAR (50)
  7. )
  8. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Baldo','')
  9. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Cardo','')
  10. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Pedro','')
  11. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Luningning','')
  12. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Paolo','')
  13. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Roberto','')
  14. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Narciso','')
  15. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Jopay','')
  16. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Bernardo','')
  17. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Policarpio','')
  18. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Sisa','')
  19. INSERT INTO Students (ID, Name, LeaderID) VALUES ('','Reginaldo','')
  20.  
  21.  
  22.  
  23. ;WITH CTERank (ID, Name, LeaderID, Rank) AS
  24. (
  25. SELECT ID, Name, LeaderID,0
  26. AS Rank
  27. FROM Students
  28. UNION ALL
  29.  
  30. SELECT S.ID, S.Name, S.LeaderID,R.Rank+1
  31. FROM Students S
  32. INNER JOIN CTERank R
  33. ON S.LeaderID=R.Rank
  34. WHERE Rank <4
  35.  
  36. )
  37. SELECT ID, Name, LeaderID, Rank
  38. FROM CTERank
  39. ORDER BY Rank;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement