Nach vorherigem Baum verbinden muss symmetrisch sein

8

Ich habe eine Verbindung nach vorheriger Abfrage, die meine Baumstruktur in Oracle aufbaut. Das funktioniert gut, aber ich habe eine Komponente, die eine symmetrische Struktur erfordert, um korrekt angezeigt zu werden.

Also ist es meine Idee, mehr Knoten in den Baum zu injizieren, wenn der Knoten auf einer niedrigeren Ebene als der höchsten Ebene sitzt.

z.B. wenn wir einen Baum haben

%Vor%

Ich muss den Baum zur Laufzeit so ändern, dass er so aussieht:

%Vor%

Dadurch wird mein Baum zur Laufzeit symmetrisch, damit die Komponente funktioniert.

Gibt es eine einfache Oracle-Abfrage oder -Funktion, die dabei helfen kann, oder eine SQL-Anweisung, die dabei helfen kann?

    
Marthinus 15.09.2011, 13:28
quelle

2 Antworten

1

Ok, nach viel Trail und Fehler denke ich, dass ich die Lösung gefunden habe.

Wenn Sie also eine Testtabelle haben, nennen Sie sie xx_tree_test mit 3 Feldern: cd, sup_cd und name; und ich füge die Testdaten hinzu, diese Abfrage

%Vor%

liefert dieses Ergebnis:

Um den zusätzlichen Knoten hinzuzufügen, um Blatt 1 und Blatt 2 auf die gleiche Ebene zu bringen, benötigen Sie diese Abfrage:

%Vor%

Nein, diese Abfrage wird zu diesem Ergebnis führen:

Alles, was jetzt noch erledigt werden muss, besteht darin, es in eine schöne Ansicht zu packen, um die riesigen Mengen an SQL zu verbergen.

    
Marthinus 16.09.2011 14:49
quelle
0

Ich glaube nicht, dass es in SQL gemacht werden kann, oder zumindest kann ich mir keinen Weg vorstellen, dies zu tun. Es scheint mir, dass die Abfrage wissen müsste, wie viele Ebenen zu erwarten sind, bevor sie ausgeführt wird.

Vielleicht brauchen Sie dann eine temporäre Tabelle, damit Sie einen zweiten Durchlauf in Ihrer Logik durchführen können, um es so zu gestalten, wie Sie es wollen.

Haben Sie eine clientseitige Komponente, die diese Daten anzeigt? Wenn ja, dann ist das vielleicht der einfachste Ort, um diesen zweiten Durchgang zu machen.

    
Hugh Jones 16.09.2011 07:58
quelle

Tags und Links