Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Tipo de
Se aplica a:
Databricks SQL
Databricks Runtime 15.3 y versiones posteriores
Importante
Esta característica está en versión preliminar pública.
Representa datos semiestructurados.
Nota:
Iceberg v2 no admite columnas VARIANT. Apache Iceberg v3 admite VARIANT columnas. Consulte Uso de las características de Apache Iceberg v3.
Sintaxis
VARIANT
Límites
El tipo admite el almacenamiento de datos OBJECTsemiestructurados, ARRAYy tipos escalares.
Para almacenar STRUCT y MAP usar la función to_variant_object .
MAP las claves deben ser de tipo STRING.
Literales
Consulte la función parse_json para más detalles sobre la creación de un valor VARIANT.
También puede usar la función CAST para convertir un literal de algún tipo en VARIANT.
Notas
- Para extraer un valor de un tipo
VARIANTpuede usar lo siguiente:-
Función
variant_getcon una expresión de ruta de acceso JSON para navegar al tipo complejo. -
El
:operador : (signo de dos puntos) para analizarVARIANTmediante una expresión de ruta de acceso JSON. -
La función
try_variant_getmediante una ruta de acceso JSON para navegar a un tipo complejo con tolerancia a errores. -
La función
casto el operador::(signo de dos puntos) para convertir el tipoVARIANTen un tipo específico. -
try_castfunción para convertirVARIANTa un tipo específico con tolerancia de errores.
-
Función
- Para inspeccionar el tipo de un valor
VARIANT, use lo siguiente:-
schema_of_variantfunción para un valor individual. -
schema_of_variant_aggfunción de agregado para una colección de valores.
-
Ejemplos
> 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" }