- 类别:
半结构化和结构化数据函数 (数组/对象)
OBJECT_KEYS¶
返回一个数组,它包含输入对象最顶层键的列表。
语法¶
OBJECT_KEYS( <object> )
实参¶
返回¶
该函数返回一个包含键的 ARRAY。
如果 object
是 结构化 OBJECT,则函数返回一个 ARRAY (VARCHAR)。
使用说明¶
如果对象包含嵌套对象(例如对象中的对象),则仅返回最顶层的键。
示例¶
基本示例¶
下一个示例演示 OBJECT_KEYS 如何同时处理 OBJECT 和包含 OBJECT 类型的值的 VARIANT。
创建一个包含 OBJECT 和 VARIANT 类型列的表。
CREATE TABLE objects_1 (id INTEGER, object1 OBJECT, variant1 VARIANT);INSERT 值:
INSERT INTO objects_1 (id, object1, variant1) SELECT 1, OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3), TO_VARIANT(OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3)) ;从 OBJECT 和 VARIANT 中检索键值:
SELECT OBJECT_KEYS(object1), OBJECT_KEYS(variant1) FROM objects_1 ORDER BY id; +----------------------+-----------------------+ | OBJECT_KEYS(OBJECT1) | OBJECT_KEYS(VARIANT1) | |----------------------+-----------------------| | [ | [ | | "a", | "a", | | "b", | "b", | | "c" | "c" | | ] | ] | +----------------------+-----------------------+
嵌套对象示例¶
此示例显示,如果对象包含嵌套对象,则仅返回最顶层的键。
SELECT OBJECT_KEYS ( PARSE_JSON ( '{ "level_1_A": { "level_2": "two" }, "level_1_B": "one" }' ) ) AS keys ORDER BY 1; +----------------+ | KEYS | |----------------| | [ | | "level_1_A", | | "level_1_B" | | ] | +----------------+