Wie man durch eine SQL-Tabelle iterate, die "parent" und child "Zeilen in derselben Tabelle sind

In einer Tabelle gibt es die Spalten ID, Titel und ParentID. ParentID wird für die ID des Eintrags in der gleichen Tabelle verwendet, die als ihr Elternteil betrachtet wird – also jeder Eintrag, in dem ParentID NULL ist, der selbst ein Elternteil ist.

Ich brauche eine Abfrage, die durch jedes Elternteil iterieren und jedes Kind unter ihm auflisten wird (idealerweise mit einem Bindestrich oder etwas, um seine Unterordnung zu bezeichnen) weiß jemand, wie dies geschehen kann oder wie man mich in die richtige Richtung zeigt?

(Ich habe in T-SQL gesucht und viele ähnliche Online-Fragen gelesen, aber mein SQL ist nicht ganz scharf genug, um Sinn zu machen, also würde ich sehr schätzen einige Hinweise!)

Hier sind Sie ja!

WITH n(ID, Title) AS (SELECT ID, Title FROM YourTable WHERE ID = (SELECT TOP 1 ID FROM YourTable WHERE ParentID IS NULL) UNION ALL SELECT nplus1.ID, nplus1.Title FROM YourTable as nplus1, n WHERE n.ID = nplus1.ParentID) SELECT ID, Title FROM n 

Um Hierarchiedaten aus der selbstreferenzierenden Tabelle zu erhalten, kannst du WITH-Syntax in SQL 2008 verwenden

  WITH n(ID) AS (SELECT ID FROM YourTable UNION ALL SELECT nplus1.ID FROM YourTable as nplus1, n WHERE n.ID = nplus1.ParentID) SELECT ID FROM n