JSON_OBJECT (Lakehouse v1)
キーと値の引数を交互に指定して、JSONオブジェクトを作成します。キーは文字列である必要があり、値には定数、式、列を指定できます。キーまたは値がNULLのペアは結果から除外されます。NULLの要素を保持するJSON_ARRAYとは異なります。NULLを保持するには、JSON_OBJECT_KEEP_NULLを使用します。
TRY_JSON_OBJECT は同じ引数を受け取り、引数を変換できない場合にエラーを発生させる代わりにNULLを返します。
Analyze構文
Section titled “Analyze構文”func.json_object(key1, value1[, key2, value2[, ...]])
func.try_json_object(key1, value1[, key2, value2[, ...]])Analyzeの例
Section titled “Analyzeの例”func.json_object('name', table.product_name, 'price', table.price)
json_object('name', product_name, 'price', price)|--------------------------------------------------+{"name":"Apple","price":1.2} |JSON_OBJECT(key1, value1[, key2, value2[, ...]])
TRY_JSON_OBJECT(key1, value1[, key2, value2[, ...]])JSONオブジェクト。
SQLの例1:定数値を使ったJSONオブジェクトの作成
Section titled “SQLの例1:定数値を使ったJSONオブジェクトの作成”SELECT JSON_OBJECT('name', 'PlaidCloud Lakehouse', 'version', 1, 'active', TRUE);
json_object('name', 'PlaidCloud Lakehouse', 'version', 1, 'active', true)|--------------------------------------------------------------------------+{"active":true,"name":"PlaidCloud Lakehouse","version":1} |SQLの例2:テーブルデータからのJSONオブジェクトの作成
Section titled “SQLの例2:テーブルデータからのJSONオブジェクトの作成”CREATE TABLE products ( ProductName VARCHAR(255), Price DECIMAL(10, 2));
INSERT INTO products (ProductName, Price)VALUES ('Apple', 1.2), ('Banana', 0.5), ('Orange', 0.8);
SELECT JSON_OBJECT('name', ProductName, 'price', Price) FROM products;
json_object('name', productname, 'price', price)|------------------------------------------------+{"name":"Apple","price":1.2} |{"name":"Banana","price":0.5} |{"name":"Orange","price":0.8} |SQLの例3:エラー時にNULLを返すTRY_JSON_OBJECT
Section titled “SQLの例3:エラー時にNULLを返すTRY_JSON_OBJECT”引数の数が奇数の場合、値のないキーが生じるため、JSON_OBJECTはエラーとして拒否します。
SELECT TRY_JSON_OBJECT('name');
try_json_object('name')|-----------------------+NULL |