Udostępnij za pośrednictwem


variant_explode_outer funkcja wartości tabeli

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 15.3 i nowsze

Zwraca zestaw wierszy przez anulowanie zagnieżdżania variantExpr przy użyciu semantyki zewnętrznej.

Składnia

variant_explode_outer ( variantExpr )

Argumenty

  • variantExpr VARIANT: wyrażenie reprezentujące VARIANT obiekt lub VARIANT ARRAY.

Zwraca

Zestaw wierszy składający się z elementów VARIANT ARRAYlub kluczy i wartości obiektu VARIANT. Kolumny generowane przez variant_explode to:

  • pos INT
  • key STRING
  • value VARIANT.

Podczas eksplodowania obiektu VARIANT kolumny wyjściowe key i value reprezentują klucze i wartości obiektu. Podczas eksplodowania tablicy VARIANT dane wyjściowe key zawsze mają wartość null, a kolumna value danych wyjściowych reprezentuje elementy tablicy.

Jeśli variantExpr jest NULL, lub nie jest elementem VARIANT ARRAY, który zawiera przynajmniej jeden element, lub OBJECT, który ma przynajmniej jedno pole, zostanie wygenerowany tylko jeden wiersz NULL. Aby w tym przypadku nie zwracać żadnych wierszy, użyj funkcji variant_explode .

Przykłady

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