JSON_PATH_QUERY_FIRST
Learn how to use the JSON_PATH_QUERY_FIRST semi-structured data function in PlaidCloud Lakehouse. Get the first JSON item returned by JSON path for the...
Get the first JSON item returned by JSON path for the specified JSON value.
Analyze Syntax
func.json_path_query_first(<variant>, <path_name>)
Analyze Example
table.name, func.json_path_query_first(table.details, '$.features.*').alias('first_feature')
┌────────────┬───────────────┐
│ name │ first_feature │
├────────────┼───────────────┤
│ Laptop │ "16GB" │
│ Laptop │ "16GB" │
│ Smartphone │ "4GB" │
│ Smartphone │ "4GB" │
│ Headphones │ "20h" │
│ Headphones │ "20h" │
└────────────┴───────────────┘
SQL Syntax
JSON_PATH_QUERY_FIRST(<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 the First Feature from Product Details
SELECT
name,
JSON_PATH_QUERY(details, '$.features.*') AS all_features,
JSON_PATH_QUERY_FIRST(details, '$.features.*') AS first_feature
FROM
products;
Result
┌────────────┬──────────────┬───────────────┐
│ name │ all_features │ first_feature │
├────────────┼──────────────┼───────────────┤
│ Laptop │ "16GB" │ "16GB" │
│ Laptop │ "512GB" │ "16GB" │
│ Smartphone │ "4GB" │ "4GB" │
│ Smartphone │ "128GB" │ "4GB" │
│ Headphones │ "20h" │ "20h" │
│ Headphones │ "5.0" │ "20h" │
└────────────┴──────────────┴───────────────┘