Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
тип
Применяется для:
Databricks SQL
Databricks Runtime 15.3 и выше
Важный
Эта функция доступна в общедоступной предварительной версии.
Представляет полуструктурированные данные.
Замечание
Таблицы Iceberg версии 2 не поддерживают VARIANT столбцы. Apache Iceberg версии 3 поддерживает VARIANT столбцы.
Ознакомьтесь с функциями Apache Iceberg версии 3.
Синтаксис
VARIANT
Ограничения
Тип поддерживает хранение полуструктурированных данных OBJECTARRAYи скалярных типов.
Для хранения STRUCT и MAP используйте функцию to_variant_object.
MAP ключи должны иметь тип STRING.
Литералы
Дополнительные сведения о создании parse_json значения см.
Вы также можете использовать функцию CAST для преобразования литерала определенного типа VARIANTв .
Примечания.
- Извлечение значения из
VARIANTможно использовать-
variant_getфункция с помощью выражения пути JSON для перехода к сложному типу. -
:Оператор (знак двоеточия) для синтаксического анализаVARIANTс помощью выражения пути JSON. -
try_variant_getфункция с помощью пути JSON для перехода к сложному типу с допуском ошибок. -
castоператор функции или::(знак двоеточия) для приведенияVARIANTобъекта к конкретному типу. -
try_castфункция для приведенияVARIANTтипа к определенному типу с допуском ошибок.
-
- Чтобы проверить тип
VARIANTзначения, используйте-
schema_of_variantфункция для отдельного значения. -
schema_of_variant_aggагрегатная функция для коллекции значений.
-
Примеры
> SELECT parse_json('{"key": 123, "data": [4, 5, "str"]}');
{"data":[4,5,"str"],"key":123}
> SELECT parse_json(null);
null
> SELECT parse_json('123');
123
> SELECT CAST(123.456 AS VARIANT);
123.456
> SELECT to_variant_object(map('key', 'val'));
{ "key": "val" }
> SELECT to_variant_object(struct('field', 'val'));
{ "field": "val" }