Поделиться через


Функция variant_get

Область применения: флажок Databricks SQL флажок Databricks Runtime 15.3 и более поздних версий

Извлекает значение типа из variantExpr, указанного pathв .

Синтаксис

variant_get ( variantExpr, path, type )

Аргументы

  • variantExpr: Выражение VARIANT.
  • pathSTRING: литерал с хорошо сформированным выражением пути JSON.
  • typeSTRING: литерал, определяющий тип.

Возвраты

Значение типа type.

Если объект не найден, NULL возвращается. Если объект найден, но не может быть приведение к нужному типу, Azure Databricks вызывается INVALID_VARIANT_CAST. Чтобы вернуться NULL вместо ошибки, используйте функцию try_variant_get .

Примеры

-- Simple example
> SELECT variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.data[1].a', 'string')
  hello

-- missing path
> SELECT variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.missing', 'int')
  null

-- Invalid cast
> SELECT variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.key', 'array<int>')
  Error: INVALID_VARIANT_CAST.