OBJECT_KEYS
OBJECT_KEYS
입력 object의 최상위 레벨에 있는 키 목록을 포함하는 배열을 반환해요.
본문
구문
OBJECT_KEYS( <object> )
인자
키를 가져오려는 값이에요. 입력 값은 다음 중 하나여야 해요.
- OBJECT.
- OBJECT 타입의 값을 포함하는 VARIANT.
반환 값
함수는 키를 포함하는 ARRAY를 반환해요. object가 구조화 OBJECT면 함수는 ARRAY(VARCHAR)를 반환해요.
사용상 주의사항
- object에 중첩된 object가 포함되어 있으면(예: object 안의 object), 이 함수는 최상위 레벨의 키만 반환해요.
예시
기본 예시
다음 예시는 OBJECT와 OBJECT 타입의 값을 포함하는 VARIANT 모두에서 OBJECT_KEYS가 작동하는 것을 보여줘요.
OBJECT와 VARIANT 타입의 컬럼을 포함하는 테이블을 만들어요.
CREATE TABLE objects_1 (id INTEGER, object1 OBJECT, variant1 VARIANT);
값을 삽입해요.
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" |
| ] | ] |
+----------------------+-----------------------+
중첩 object 예시
이 예시는 object에 중첩된 object가 포함되어 있으면 최상위 레벨의 키만 반환된다는 것을 보여줘요.
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" |
| ] |
+----------------+