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

Избор/Вмъкване на израз за йерархична база данни (SQL Server)

Ако използвате SQL Server 2005 или по-нова версия, можете да използвате рекурсивни заявки, за да получите вашата информация. Ето един пример:

With tree (id, Name, ParentID, [level])
As (
    Select id, Name, ParentID, 1
    From [myTable]
    Where ParentID = 0

    Union All

    Select child.id
          ,child.Name
          ,child.ParentID
          ,parent.[level] + 1 As [level]
    From [myTable] As [child]
    Inner Join [tree] As [parent]
    On [child].ParentID = [parent].id)
Select * From [tree];

Тази заявка ще върне реда, поискан от първата част (където ParentID =0) и всички подредове рекурсивно. Това помага ли ви?

Не съм сигурен, че разбирам какво искате да се случи с вашата вложка. Можете ли да предоставите повече информация по отношение на очаквания резултат, когато сте готови?

Успех!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server еквивалентен на MySQL enum тип данни?

  2. Как да покажа изображение от sql сървър в ms access

  3. Защо разделените с точка префикси се игнорират в списъка с колони за оператори INSERT?

  4. SQL брои редове в таблица

  5. Използване на GO в рамките на транзакция