Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uzyskać wszystkie dzieci rodzica, a następnie ich dzieci za pomocą rekurencji w zapytaniu?

DECLARE @Id int = your_UnitId
;WITH cte AS 
 (
  SELECT a.Id, a.parentId, a.name
  FROM customer a
  WHERE Id = @Id
  UNION ALL
  SELECT a.Id, a.parentid, a.Name
  FROM customer a JOIN cte c ON a.parentId = c.id
  )
  SELECT parentId, Id, name
  FROM cte

Demo na SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolejność sortowania SQL z ostatnimi wartościami Null

  2. Nie można połączyć się z localDB w VS2012 — wystąpił błąd związany z siecią lub specyficzny dla instancji podczas nawiązywania połączenia z SQL Server...

  3. dynamiczne tworzenie tabeli #temp, a następnie wstawianie danych

  4. SQL Server 2005/2008 Grupuj według instrukcji z parametrami bez użycia dynamicznego SQL?

  5. Czy można zmodyfikować systemową procedurę składowaną?