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 15.3 et versions ultérieures
Retourne un ensemble de lignes en annulant l’imbrication de variantExpr à l’aide d’une sémantique externe.
Syntaxe
variant_explode_outer ( variantExpr )
Les arguments
-
variantExpr: expressionVARIANTreprésentant un objetVARIANTouVARIANT ARRAY.
Retours
Ensemble de lignes composées des éléments du VARIANT ARRAY ou des clés et des valeurs de l’objet VARIANT.
Les colonnes produites par variant_explode sont les suivantes :
pos INTkey STRING-
value VARIANT.
Lors de l’explosion d’un objet VARIANT, les colonnes key et value de sortie représentent les clés et les valeurs de l’objet.
Lors de l’explosion d’un tableau VARIANT, le key de sortie est toujours null et la colonne de sortie value représente les éléments du tableau.
Si variantExpr est NULL, ou n’est ni un VARIANT ARRAY contenant au moins un élément ni un OBJECT contenant au moins un champ, une seule ligne de NULLs est produite.
Pour ne retourner aucune ligne dans ce cas, utilisez la fonction variant_explode.
Exemples
-- Simple example
> SELECT *
FROM variant_explode_outer(parse_json('[1, "a", {"b": "hello"}]'));
pos key value
--- ---- -------------
0 NULL 1
1 NULL "a"
2 NULL {"b":"hello"}
> SELECT *
FROM variant_explode_outer(parse_json('{"foo":1,"bar":"hello"}'));
pos key value
--- ---- -------------
0 bar "hello"
1 foo 1
-- null input
> SELECT value FROM variant_explode_outer(null) AS t(pos, key, value);
null
-- Not an array or object input
> SELECT value FROM variant_explode_outer(parse_json('123')) AS t(pos, key, value);
null
-- Using lateral correlation
> SELECT t.value AS outer, u.value AS inner
FROM variant_explode_outer(parse_json('[[1, 2], [3, 4]]')) AS t,
LATERAL variant_explode(t.value) AS u;
outer inner
----- -----
[1,2] 1
[1,2] 2
[3,4] 3
[3,4] 4