Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да получите всички деца на родител и след това техните деца с помощта на рекурсия в заявката

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

Демонстрация на 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. Върнатият тип данни варира в зависимост от данните в таблицата

  2. Програмно генериране на скрипт за всички обекти в база данни

  3. как да принудително инсталирам студио за управление?

  4. Грешка при конвертиране на тип данни varchar

  5. Как да покажете съпоставянето на колона в SQL Server (T-SQL)