Freigeben über


variant_explode-Tabellenwertfunktion

Gilt für:Häkchen gesetzt ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 15.3 und höher

Gibt eine Reihe von Zeilen zurück, indem sie die Schachtelung von input aufheben.

In Databricks SQL sowie Databricks Runtime 16.1 und höher unterstützt diese Funktion den Aufruf benannter Parameter.

Syntax

variant_explode ( input )

Argumente

  • variantExpr: Ein VARIANT-Ausdruck, der ein VARIANT-Objekt oder eine VARIANT ARRAY-Instanz darstellt.

Gibt zurück

Zeilen, die aus den Elementen der VARIANT ARRAY-Instanz oder den Schlüsseln und Werten des VARIANT-Objekts bestehen. Die von variant_explode erzeugten Spalten sind:

  • pos INT
  • key STRING
  • value VARIANT.

Beim Explodieren eines VARIANT-Objekts stellen die Ausgabespalten key und value die Schlüssel und Werte des Objekts dar. Beim Explodieren eines VARIANT-Arrays ist die key-Ausgabe immer NULL, und die Ausgabespalte value stellt die Elemente des Arrays dar.

Wenn inputNULL ist oder kein VARIANT ARRAY- oder VARIANT-Objekt ist, werden keine Zeilen erstellt. Um in diesem Fall eine einzelne Zeile mit NULL-Werten zu erstellen, verwenden Sie die variant_explode_outer-Funktion.

Beispiele

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