

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Clausola CONNECT BY
<a name="r_CONNECT_BY_clause"></a>

La clausola CONNECT BY specifica la relazione tra le righe in una gerarchia. È possibile utilizzare CONNECT BY per selezionare le righe in ordine gerarchico eseguendo il joining della tabella con se stessa ed elaborando i dati gerarchici. Ad esempio, può essere usata per eseguire spostamenti in modo ricorsivo all'interno di un organigramma ed elencare i dati.

L'elaborazione delle query gerarchiche avviene nel seguente ordine:

1. Se la clausola FROM ha un join, viene elaborata per prima.

1. Viene valutata la clausola CONNECT BY.

1. Viene valutata la clausola WHERE.

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

```
[START WITH start_with_conditions]
CONNECT BY connect_by_conditions
```

**Nota**  
Sebbene START e CONNECT non siano parole riservate, utilizza identificatori delimitati (virgolette doppie) o AS se si utilizza START e CONNECT come alias di tabella nella query per evitare errori in fase di runtime.

```
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\$1with\$1conditions*   
Condizioni che specificano la riga o le righe principali della gerarchia

 *connect\$1by\$1conditions*   
Condizioni che specificano la relazione tra le righe principali e le righe secondarie della gerarchia. Almeno una condizione deve essere qualificata con l'operatore unario ` ` utilizzato per fare riferimento alla riga principale.  

```
PRIOR column = expression
-- or
expression > PRIOR column
```

## Operatori
<a name="r_CONNECT_BY_operators"></a>

È possibile utilizzare i seguenti operatori in una query CONNECT BY.

 *LEVEL*   
Pseudocolonna che restituisce il livello di riga corrente nella gerarchia. Restituisce 1 per la riga principale, 2 per la riga secondaria e così via.

 *PRIOR*   
Operatore unario che valuta l'espressione per la riga principale della riga corrente nella gerarchia.

## Esempi
<a name="r_CONNECT_BY_example"></a>

L'esempio seguente è una query CONNECT BY che restituisce il numero di dipendenti che riportano direttamente o indirettamente a John (non più di 4 livelli). 

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

Di seguito è riportato il risultato della query.

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

 La definizione di tabella per questo esempio è la seguente: 

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

 Di seguito sono riportate le righe inserite nella tabella. 

```
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);
```

Di seguito è riportato un organigramma per il dipartimento di John.

![\[Diagramma dell'organigramma per il dipartimento di John.\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/images/org-chart.png)
