Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

CONNECT BY-Klausel - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CONNECT BY-Klausel

Die CONNECT BY-Klausel gibt die Beziehung zwischen Zeilen in einer Hierarchie an. Sie können CONNECT BY verwenden, um Zeilen in einer hierarchischen Reihenfolge auszuwählen, indem Sie die Tabelle mit sich selbst verbinden und die hierarchischen Daten verarbeiten. Sie können dies beispielsweise verwenden, um rekursiv ein Organigramm zu durchlaufen und Daten aufzulisten.

Hierarchische Abfragen werden in der folgenden Reihenfolge verarbeitet:

  1. Wenn die FROM-Klausel eine Verknüpfung enthält, wird diese zuerst verarbeitet.

  2. Die CONNECT BY-Klausel wird ausgewertet.

  3. Die WHERE-Klausel wird ausgewertet.

Syntax

[START WITH start_with_conditions] CONNECT BY connect_by_conditions
Anmerkung

START und CONNECT sind zwar keine reservierten Wörter, Sie sollten jedoch abgegrenzte Kennungen (doppelte Anführungszeichen) oder AS verwenden, wenn Sie START und CONNECT als Tabellenaliasse in Ihrer Abfrage verwenden, um Fehler während der Laufzeit zu vermeiden.

SELECT COUNT(*) FROM Employee "start" CONNECT BY PRIOR id = manager_id START WITH name = 'John'
SELECT COUNT(*) FROM Employee AS start CONNECT BY PRIOR id = manager_id START WITH name = 'John'

Parameter

start_with_conditions

Bedingungen, die die Stammzeile(n) der Hierarchie angeben.

connect_by_conditions

Bedingungen, die die Beziehung zwischen übergeordneten Zeilen und untergeordneten Zeilen der Hierarchie angeben. Mindestens eine Bedingung muss mit dem unären Operator qualifiziert werden, der für den Verweis auf die übergeordnete Zeile verwendet wird.

PRIOR column = expression -- or expression > PRIOR column

Operatoren

Sie können die folgenden Operatoren in einer CONNECT BY-Abfrage verwenden.

LEVEL

Pseudospalte, die die aktuelle Zeilenebene in der Hierarchie zurückgibt. Gibt 1 für die Stammzeile, 2 für das untergeordnete Element der Stammzeile zurück usw.

PRIOR

Unärer Operator, der den Ausdruck für die übergeordnete Zeile der aktuellen Zeile in der Hierarchie auswertet.

Beispiele

Im Folgenden finden Sie eine CONNECT BY-Abfrage, die die Anzahl der Mitarbeiter zurückgibt, die direkt oder indirekt John unterstellt sind, und zwar auf 4 Ebenen begrenzt.

SELECT id, name, manager_id FROM employee WHERE LEVEL < 4 START WITH name = 'John' CONNECT BY PRIOR id = manager_id;

Nachfolgend das Ergebnis der Abfrage.

id name manager_id ------+----------+-------------- 101 John 100 102 Jorge 101 103 Kwaku 101 110 Liu 101 201 Sofía 102 106 Mateo 102 110 Nikki 103 104 Paulo 103 105 Richard 103 120 Saanvi 104 200 Shirley 104 205 Zhang 104

Die Tabellendefinition für dieses Beispiel lautet wie folgt:

CREATE TABLE employee ( id INT, name VARCHAR(20), manager_id INT );

Im Folgenden werden die Zeilen in die Tabelle eingefügt.

INSERT INTO employee(id, name, manager_id) VALUES (100, 'Carlos', null), (101, 'John', 100), (102, 'Jorge', 101), (103, 'Kwaku', 101), (110, 'Liu', 101), (106, 'Mateo', 102), (110, 'Nikki', 103), (104, 'Paulo', 103), (105, 'Richard', 103), (120, 'Saanvi', 104), (200, 'Shirley', 104), (201, 'Sofía', 102), (205, 'Zhang', 104);

Im Folgenden finden Sie ein Organigramm für Johns Abteilung.

Im Folgenden finden Sie ein Organigramm für Johns Abteilung.
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.