JSON_PATH_QUERY
Learn how to use the JSON_PATH_QUERY semi-structured data function in PlaidCloud Lakehouse. Get all JSON items returned by JSON path for the specified JSON...
Get all JSON items returned by JSON path for the specified JSON value.
Analyze Syntax
func.json_path_query(<variant>, <path_name>)
Analyze Example
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" │
└────────────┴──────────────┘
SQL Syntax
JSON_PATH_QUERY(<variant>, '<path_name>')
Return Type
VARIANT
SQL Examples
Create a Table and Insert Sample Data
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"}}');
Query Demo: Extracting All Features from Product Details
SELECT
name,
JSON_PATH_QUERY(details, '$.features.*') AS all_features
FROM
products;
Result
┌────────────┬──────────────┐
│ name │ all_features │
├────────────┼──────────────┤
│ Laptop │ "16GB" │
│ Laptop │ "512GB" │
│ Smartphone │ "4GB" │
│ Smartphone │ "128GB" │
│ Headphones │ "20h" │
│ Headphones │ "5.0" │
└────────────┴──────────────┘