Delen via


variant_explode functie met tabelwaarde

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 15.3 en hoger

Retourneert een set rijen door het ont-nesten van input.

In Databricks Runtime 16.1 en hoger ondersteunt deze functie benoemde parameter aanroep.

Syntaxis

variant_explode ( input )

Argumenten

  • variantExpr: Een VARIANT expressie, die een VARIANT object of VARIANT ARRAY.

Retouren

Een set rijen die bestaan uit de elementen van de VARIANT ARRAYof de sleutels en waarden van het VARIANT-object. De kolommen die door variant_explode worden geproduceerd, zijn:

  • pos INT
  • key STRING
  • value VARIANT.

Wanneer u een VARIANT-object uitplot, vertegenwoordigen de uitvoerkolommen key en value de sleutels en waarden van het object. Bij het uitvouwen van een VARIANT array, is de uitvoer key altijd NULL, en de uitvoerkolom value vertegenwoordigt de elementen van de array.

Als input het een NULLof VARIANT ARRAY niet-object VARIANT is, worden er geen rijen geproduceerd. Als u in dit geval één rij met NULL waarden wilt produceren, gebruikt u de functie variant_explode_outer.

Voorbeelden

-- 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