Lead SQL

Lead SQL

La funzione di lead SQL consente di accedere alla riga successiva dalla riga corrente in un offset specifico. In breve, la funzione Lead consente di accedere alla riga successiva da quella corrente. Specificando il valore di offset, è possibile accedere al prossimo 1, 2, 3, ecc., righe da quella attuale.

È l'opposto della funzione Lag (), che consente di accedere alle righe precedenti.

SQL Lead ()

La sintassi della funzione è come mostrata:

Lead (value_expression, offset [, impostazione predefinita])
SOPRA (
[Partizione di partizione_expression]
Ordine di Sort_Expression [ASC | Discendente
);

I seguenti sono gli argomenti supportati:

  1. value_expression - Specifica il valore di ritorno della riga precedente. L'espressione deve valutare un singolo valore.
  2. compensare - Specifica quante righe in avanti dalla riga corrente per accedere.
  3. predefinito - Imposta il valore predefinito se l'offset è al di fuori dell'ambito della partizione. Per impostazione predefinita, il valore è impostato su null.
  4. Partizione di - Specifica come suddividere i dati.
  5. Ordinato da - Imposta il formato dell'ordine per le righe in ogni partizione.

Esempio 1

Supponiamo di avere una tabella contenente le informazioni sui dipendenti come mostrato:

Per accedere al nome del dipendente successivo, possiamo eseguire una query come mostrato:

Seleziona ID, full_name, lead (full_name) over (
partizione per categoria
Ordine per id asc
) Come Next_Employee
Dai dipendenti;

Il codice sopra divisterà i dati in base alla categoria. Prenderà quindi il nome successivo nella partizione usando la funzione di lead.

L'output risultante è come mostrato:

Esempio 2

Se non esiste una riga successiva in una colonna specifica (Out of Bound), la funzione imposterà il valore su NULL, come mostrato sopra.

Per impostare un valore predefinito per eventuali accesso fuori dal punto di vista, possiamo fare quanto segue:

Seleziona ID, full_name, lead (full_name, 1, 'n/a') over (
partizione per categoria
Ordine per id asc
) Come Next_Employee
Dai dipendenti;

Impostiamo il valore predefinito su 'n/a'. Ciò dovrebbe sostituire qualsiasi valore out-of-limite come mostrato nell'output:

NOTA: Impostazione dell'offset su 1 è simile a non specificare alcun valore.

Esempio 3

Supponiamo di voler accedere alle due righe successive dalla riga corrente? Possiamo farlo impostando il valore di offset su 2.

Una query di esempio è illustrata di seguito:

Seleziona ID, full_name, lead (full_name, 2, 'n/a') over (
partizione per categoria
Ordine per id asc
) Come Next_Employee
Dai dipendenti;

Questa query restituirà le due righe successive in ciascuna partizione come mostrato di seguito: