Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применяется для:
Databricks SQL
Databricks Runtime 15.3 и выше
Возвращает набор строк путем отмены вложения variantExpr с помощью внешней семантики.
Синтаксис
variant_explode_outer ( variantExpr )
Аргументы
-
variantExprVARIANT: выражение, представляющееVARIANTобъект илиVARIANT ARRAY.
Возвраты
Набор строк, состоящих из элементов VARIANT ARRAYили ключей и значений объекта VARIANT.
Столбцы, созданные variant_explode:
pos INTkey STRING-
value VARIANT.
При взрыве объекта VARIANT выходные key и value столбцы представляют ключи и значения объекта.
При взрыве массива VARIANT выходной key всегда имеет значение NULL, а выходной value столбец представляет элементы массива.
Если variantExpr является NULL, или не является ни VARIANT ARRAY с хотя бы одним элементом, ни OBJECT с хотя бы одним полем, создаётся одна строка из NULL.
Чтобы не возвращать строки в этом случае, используйте функцию variant_explode.
Примеры
-- 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