Pearlfromsu

true3less

Dec 2nd, 2024
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.64 KB | None | 0 0
  1. WITH RecursiveDepartment AS (
  2. SELECT
  3. ID,
  4. DepartmentName,
  5. ParentID,
  6. CAST(DepartmentName AS NVARCHAR(MAX)) AS Tree,
  7. 1 AS Level,
  8. CONVERT(varchar(255), RIGHT('0000' + CAST(ID AS varchar(4)), 4)) AS Path
  9. FROM
  10. tblDepartment
  11. WHERE
  12. ParentID IS NULL
  13. UNION ALL
  14. SELECT
  15. d.ID,
  16. d.DepartmentName,
  17. d.ParentID,
  18. CAST(REPLICATE('-', 10 * r.Level) + d.DepartmentName AS NVARCHAR(MAX)),
  19. r.Level + 1,
  20. CONVERT(varchar(255), r.Path + RIGHT('0000' + CAST(d.ID AS varchar(4)), 4))
  21. FROM
  22. tblDepartment d
  23. INNER JOIN RecursiveDepartment r ON d.ParentID = r.ID
  24. )
  25. SELECT
  26. ROW_NUMBER() OVER (ORDER BY Path) AS number,
  27. Tree
  28. FROM
  29. RecursiveDepartment
  30. ORDER BY
  31. Path;
Advertisement
Add Comment
Please, Sign In to add comment