本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
OBJECT_TRANSFORM 函數
轉換SUPER物件。
語法
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
引數
- input
-
解析為SUPER類型物件的表達式。
- KEEP
-
在這個子句中指定的所有路徑值都會保留,並轉移到輸出物件。
此子句是選用的。
- path1、path2...
-
常數字串常值,採用以句點分隔的雙引號路徑元件的格式。例如,
'"a"."b"."c"'
是有效的路徑值。這適用於 KEEP和 SET子句中的路徑參數。 - SET
-
path 和 value 配對可修改現有路徑或新增路徑,並在輸出物件中設定該路徑的值。
此子句是選用的。
- value1、value2...
-
解析為SUPER輸入值的表達式。請注意,數值、文字和布林類型可解析為 SUPER。
傳回類型
SUPER
使用須知
OBJECT_TRANSFORM 傳回SUPER類型物件,其中包含在 中指定的路徑值,KEEP以及在 中指定的路徑和值對SET。
如果 KEEP和 SET 都是空的,OBJECT_TRANSFORM 會傳回輸入 。
如果輸入不是SUPER類型物件 ,OBJECT_TRANSFORM 會傳回輸入 ,而不論任何 KEEP或 SET值。
範例
下列範例會將SUPER物件轉換為另一個SUPER物件。
CREATE TABLE employees ( col_person SUPER ); INSERT INTO employees VALUES ( json_parse(' { "name": { "first": "John", "last": "Doe" }, "age": 25, "ssn": "111-22-3333", "company": "Company Inc.", "country": "U.S." } ') ), ( json_parse(' { "name": { "first": "Jane", "last": "Appleseed" }, "age": 34, "ssn": "444-55-7777", "company": "Organization Org.", "country": "Ukraine" } ') ) ; SELECT OBJECT_TRANSFORM( col_person KEEP '"name"."first"', '"age"', '"company"', '"country"' SET '"name"."first"', UPPER(col_person.name.first::TEXT), '"age"', col_person.age + 5, '"company"', 'Amazon' ) AS col_person_transformed FROM employees; --This result is formatted for ease of reading.
col_person_transformed ------------------------------------------------------------- { "name": { "first": "JOHN" }, "age": 30, "company": "Amazon", "country": "U.S." } { "name": { "first": "JANE" }, "age": 39, "company": "Amazon", "country": "Ukraine" }