Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
S’applique à :
Databricks SQL
Databricks Runtime
Sépare expr1, …, exprN en numRows lignes.
Syntaxe
stack(numRows, expr1 [, ...] )
Arguments
-
numRows: littéral de type entierINTEGERsupérieur à 0 spécifiant le nombre de lignes produites. -
exprN: Expression de tout type. Le type de touteexprNdoit correspondre au type deexpr(N+numRows).
Retours
Ensemble de numRows lignes comprenant max(1, (N/numRows)) colonnes, produites par cette fonction.
Une ligne incomplète est remplie avec des NULL.
Par défaut, les colonnes produites sont nommées col0, … col(n-1).
stack équivaut à la VALUES clause.
S’applique à :
Databricks Runtime 12.1 et versions précédentes :stackne peut être placé dans laSELECTliste que comme racine d’une expression ou après un LATERAL VIEW. Lorsque vous placez la fonction dans laSELECTliste, il ne doit pas y avoir d’autre fonction génératrice dans la mêmeSELECTliste ou UNSUPPORTED_GENERATOR.MULTI_GENERATOR est levée.S’applique à :
Databricks SQL
Databricks Runtime 12.2 LTS et versions ultérieures :L’appel depuis la clause LATERAL VIEW ou la
SELECTliste est déconseillé. En lieu et place, appelezstacken tant que table_reference.
Exemples
S’applique à :
Databricks Runtime 12.1 et versions précédentes :
> 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
S’applique à :
Databricks SQL
Databricks Runtime 12.2 LTS et versions ultérieures :
> 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
Fonctions connexes
-
explodeFonction génératrice de valeurs tabulaires -
explode_outerFonction génératrice de valeurs tabulaires -
inlineFonction génératrice de valeurs tabulaires -
inline_outerFonction génératrice de valeurs tabulaires -
posexplode_outerFonction génératrice de valeurs tabulaires -
posexplodeFonction génératrice de valeurs tabulaires