JSON_PATH_QUERY (Lakehouse v1)
Obtiene todos los elementos JSON devueltos por la ruta JSON para el valor JSON especificado.
Sintaxis de Analyze
Sección titulada «Sintaxis de Analyze»func.json_path_query(<variant>, <path_name>)Ejemplos de Analyze
Sección titulada «Ejemplos de Analyze»table.name, func.json_path_query(table.details, '$.features.*').alias('all_features')
┌────────────┬──────────────┐│ name │ all_features │├────────────┼──────────────┤│ Laptop │ "16GB" ││ Laptop │ "512GB" ││ Smartphone │ "4GB" ││ Smartphone │ "128GB" ││ Headphones │ "20h" ││ Headphones │ "5.0" │└────────────┴──────────────┘Sintaxis SQL
Sección titulada «Sintaxis SQL»JSON_PATH_QUERY(<variant>, '<path_name>')Tipo de retorno
Sección titulada «Tipo de retorno»VARIANT
Ejemplos de SQL
Sección titulada «Ejemplos de SQL»Crear una tabla e insertar datos de ejemplo
CREATE TABLE products ( name VARCHAR, details VARIANT);
INSERT INTO products (name, details)VALUES ('Laptop', '{"brand": "Dell", "colors": ["Black", "Silver"], "price": 1200, "features": {"ram": "16GB", "storage": "512GB"}}'), ('Smartphone', '{"brand": "Apple", "colors": ["White", "Black"], "price": 999, "features": {"ram": "4GB", "storage": "128GB"}}'), ('Headphones', '{"brand": "Sony", "colors": ["Black", "Blue", "Red"], "price": 150, "features": {"battery": "20h", "bluetooth": "5.0"}}');Demostración de consulta: extracción de todas las características de los detalles del producto
SELECT name, JSON_PATH_QUERY(details, '$.features.*') AS all_featuresFROM products;Resultado
┌────────────┬──────────────┐│ name │ all_features │├────────────┼──────────────┤│ Laptop │ "16GB" ││ Laptop │ "512GB" ││ Smartphone │ "4GB" ││ Smartphone │ "128GB" ││ Headphones │ "20h" ││ Headphones │ "5.0" │└────────────┴──────────────┘