Partager via


variant_explode fonction table

S’applique à : coche pour oui Databricks SQL case marquée oui Databricks Runtime 15.3 et versions ultérieures

Retourne un ensemble de lignes en dés imbrication variantExpr.

Syntaxe

variant_explode ( variantExpr )

Arguments

  • variantExpr : expression VARIANT représentant un objet VARIANT ou VARIANT 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 INT
  • key 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 value de sortie représente les éléments du tableau.

Si variantExpr est NULL ou n’est pas un objet VARIANT ARRAY ou VARIANT, aucune ligne n’est générée. Pour générer une seule ligne des valeurs NULL dans ce cas, utilisez la fonction variant_explode_outer.

Exemples

-- Simple example
> SELECT *
   FROM variant_explode(parse_json('[1, "a", {"b": "hello"}]'));
  pos  key  value
  ---  ---- -------------
    0  NULL 1
    1  NULL "a"
    2  NULL {"b":"hello"}

> SELECT *
    FROM variant_explode(parse_json('{"foo":1,"bar":"hello"}'));
  pos  key  value
  ---  ---- -------------
    0  bar  "hello"
    1  foo  1

-- Using lateral correlation
> SELECT t.value AS outer, u.value AS inner
    FROM variant_explode(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