Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Select/Insert-Anweisung für hierarchische Datenbanken (SQL Server)

Wenn Sie SQL Server 2005 oder höher verwenden, können Sie rekursive Abfragen verwenden, um Ihre Informationen abzurufen. Hier ist ein Beispiel:

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];

Diese Abfrage gibt die vom ersten Teil angeforderte Zeile (wobei ParentID =0) und alle Unterzeilen rekursiv zurück. Hilft Ihnen das?

Ich bin mir nicht sicher, ob ich verstehe, was Sie mit Ihrer Beilage haben wollen. Können Sie weitere Informationen zum erwarteten Ergebnis geben, wenn Sie fertig sind?

Viel Glück!