Aracılığıyla paylaş


tablo değerli işlevi variant_explode_outer

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 15.3 ve üzeri

Dış semantiği kullanarak variantExpr'ın içinden iç içe olmayan bir satır kümesi döndürür.

Söz dizimi

variant_explode_outer ( variantExpr )

Argümanlar

  • variantExpr: VARIANT nesnesini veya VARIANT temsil eden bir VARIANT ARRAY ifadesi.

İadeler

VARIANT ARRAYöğelerinden veya VARIANT nesnesinin anahtarlarından ve değerlerinden oluşan bir satır kümesi. variant_explode tarafından üretilen sütunlar şunlardır:

  • pos INT
  • key STRING
  • value VARIANT.

bir VARIANT nesnesi patlarken çıkış key ve value sütunları nesnenin anahtarlarını ve değerlerini temsil eder. bir VARIANT dizisi patlarken, çıkış key her zaman nulltır ve çıkış value sütunu dizinin öğelerini temsil eder.

variantExpr is NULL ise, veya en az bir öğe içeren bir VARIANT ARRAY veya en az bir alanı olan bir OBJECT değilse, tek bir NULLs satırı oluşturulur. Bu durumda hiçbir satır döndürmemek için variant_explode işlevini kullanın.

Örnekler

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