

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="r_CONNECT_BY_clause"></a>

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.

1. Die CONNECT BY-Klausel wird ausgewertet.

1. Die WHERE-Klausel wird ausgewertet.

## Syntax
<a name="r_CONNECT_BY_clause-synopsis"></a>

```
[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'
```

## Parameters
<a name="r_CONNECT_BY_parameters"></a>

 *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
<a name="r_CONNECT_BY_operators"></a>

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
<a name="r_CONNECT_BY_example"></a>

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.](http://docs.aws.amazon.com/de_de/redshift/latest/dg/images/org-chart.png)
