Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime
Separa expr1, ..., exprN in numRows righe.
Sintassi
stack(numRows, expr1 [, ...] )
Argomenti
-
numRows: valoreINTEGERletterale maggiore di 0 che specifica il numero di righe generate. -
exprN: espressione di qualsiasi tipo. Il tipo di qualsiasiexprNdeve corrispondere al tipo diexpr(N+numRows).
Restituzioni
Un insieme di numRows righe che comprende max(1, (N/numRows)) colonne prodotte da questa funzione.
Una riga incompleta viene riempita con NULLs.
Per impostazione predefinita, le colonne prodotte sono denominate col0, … col(n-1).
stack equivale alla VALUES clausola .
Si applica a:
Databricks Runtime 12.1 e versioni precedenti:stackpuò essere inserito solo nell'elencoSELECTcome radice di un'espressione o dopo un LATERAL VIEW. Quando si inserisce la funzione nell'elenco diSELECT, non deve esserci alcuna altra funzione generatrice nello stesso elenco diSELECT, altrimenti viene generato l'errore UNSUPPORTED_GENERATOR.MULTI_GENERATOR.Si applica a:
Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive:La chiamata dalla clausola ,LATERAL VIEW o o dall'elenco
SELECTè deprecata. Richiamarestackinvece come table_reference.
Esempi
Si applica a:
Databricks Runtime 12.1 e versioni precedenti:
> SELECT 'hello', stack(2, 1, 2, 3) AS (first, second), 'world';
hello 1 2 world
hello 3 NULL world
> SELECT 'hello', stack(2, 1, 2, 3) AS (first, second), stack(2, 'a', 'b') AS (third) 'world';
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
-- Equivalent usage of VALUES
> SELECT 'hello', s1.*, s2.*, 'world'
FROM VALUES(1, 2), (3, NULL) AS s1(first, second),
VALUES('a'), ('b') AS s2(third);
hello 1 2 a world
hello 3 NULL a world
hello 1 2 b world
hello 3 NULL b world
Si applica a:
Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive:
> SELECT 'hello', s.*, 'world'
FROM stack(2, 1, 2, 3) AS s(first, second);
hello 1 2 world
hello 3 NULL world
> SELECT 'hello', s1.*, s2.*, 'world'
FROM stack(2, 1, 2, 3) AS s1(first, second),
stack(2, 'a', 'b') AS s2(third);
hello 1 2 a world
hello 3 NULL a world
hello 1 2 b world
hello 3 NULL b world
Funzioni correlate
-
explodefunzione generatore con valori di tabella -
explode_outerfunzione generatore con valori di tabella -
inlinefunzione generatore con valori di tabella -
inline_outerfunzione generatore con valori di tabella -
posexplode_outerfunzione generatore con valori di tabella -
posexplodefunzione generatore con valori di tabella