Ich habe eine Tabelle, die Ordner Pfade enthält. Ich muss alle "Lücken" zwischen diesen Ordnern in der Hierarchie finden. meine ich, dass, wenn die Tabelle diese drei Ordner enthält:SQL: Finden Sie fehlende Hierarchie Ordner (Pfade) in einer Tabelle
'A'
'A\B\C'
'A\B\C\D\E\F\G'
Ich brauche die folgenden fehlende Ordner in der Hierarchie zu finden:
'A\B'
'A\B\C\D'
'A\B\C\D\E'
'A\B\C\D\E\F'
Diese Tabelle mehr als 250.000 Datensätze des Ordners enthält , so suchen wir für die meisten effiziente Weg, dies zu tun, sonst wird das Skript für lange Zeit stecken bleiben, Zeit, die wir nicht haben.
Kommentar: Ich habe keine Liste aller Ordner. Was ich habe, sind die "root" -Ordner und die "leafs" -Ordner, die ich brauche, um die "Lücken" zwischen ihnen in der Hierarchie zu finden.
Zweiter Kommentar: Die Tabelle kann enthält mehr als eine Hierarchie und wir brauchen die „Lücken“ in alle der Hierarchien zu finden. Zu diesem Thema gibt es 2 weitere int-Spalten: "DirID" und "BaseDirID". Die Spalte "DirID" ist die ID-Spalte in unserer Tabelle. Die "BaseDirID" enthält die ID des ersten Ordners in der Hierarchie. Daher teilen sich alle Ordner (Pfade) derselben Hierarchie denselben Wert in dieser Spalte. Beispieldaten zum Beispiel:
DirID BaseDirID DisplayPath
1 1 'A'
2 1 'A\B\C'
3 1 'A\B\C\D\E'
4 4 'U'
5 4 'U\V\W'
6 4 'U\V\W\X\Y'
Also brauchen wir folgende Daten zu finden:
BaseDirID DisplayPath
1 'A\B'
1 'A\B\C\D'
4 'U\V'
4 'U\V\W\X'
Vielen Dank im Voraus.
Dies ist etwas, was ich außerhalb von SQL tun würde. Jede Programmiersprache wird in diesem Fall wahrscheinlich besser funktionieren als t-sql. –