stieß ich auf eine Abfrage eine Dummy-Tabelle wie dieseCONNECT BY ohne vorherige
CREATE TABLE destination AS
SELECT level AS id,
CASE
WHEN MOD(level, 2) = 0 THEN 10
ELSE 20
END AS status,
'Description of level ' || level AS description
FROM dual
CONNECT BY level <= 10;
SELECT * FROM destination;
1 20 Description of level 1
2 10 Description of level 2
3 20 Description of level 3
4 10 Description of level 4
5 20 Description of level 5
6 10 Description of level 6
7 20 Description of level 7
8 10 Description of level 8
9 20 Description of level 9
10 10 Description of level 10
10 rows selected.
erstellen Könnten Sie einige Einsichten teilen, wie das funktioniert? Zuerst ist mir das Fehlen von PRIOR
unbekannt. Zweitens verstehe ich nicht, wie der Baum aufgebaut ist. Von der Ebene aus sieht es so aus, als ob sie alle von derselben Wurzel ausgehen.
Ah treffen wir uns wieder, mein lieber mathguy. Sieht so aus, als sei dies Neuland von Oracle. – Kenny
"undokumentiert"? Ich denke nicht. Werfen Sie einen Blick auf die Definition der "hierarchic_query_clause" [in der 11.1 SQL Ref] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#i2065646). 'CONNECT BY LEVEL <= 10' ist für die Beschreibung absolut gültig -' LEVEL <= 10' ist das 'condition'-Element des Ausdrucks. –
@BobJarvis - Vielleicht hast du meinen Punkt verpasst? Lese den Titel des Threads, siehst du den "ohne PRIOR" -Teil? Was ich gesagt habe, wenn Sie meine Antwort noch einmal durchlesen, ist nicht nur "undokumentiert" - ich habe tatsächlich gesagt "GEGEN die Dokumentation". Oder ist Ihnen nicht bewusst, dass die dokumentierte Definition von hierarchischen Abfragen mindestens eine Bedingung in der CONNECT BY-Klausel erfordert, um den PRIOR-Operator zu verwenden? http://docs.oracle.com/cd/B28359_01/server.111/b28286/queries003.htm#i2053935 – mathguy