- 카테고리:
반정형 및 정형 데이터 함수 (추출)
GET¶
ARRAY 또는 OBJECT (또는 ARRAY 또는 OBJECT를 포함하는 VARIANT)에서 값을 추출합니다.
인자 중 하나가 NULL이면 NULL을 반환합니다.
이 함수를 GET DML 명령과 혼동해서는 안 됩니다.
- 참고 항목:
구문¶
ARRAY (또는 ARRAY를 포함하는 VARIANT)
GET( <array> , <index> )
GET( <variant> , <index> )
OBJECT (또는 OBJECT를 포함하는 VARIANT)
GET( <object> , <field_name> )
GET( <variant> , <field_name> )
MAP
GET( <map> , <key> )
인자¶
array
ARRAY 로 평가되는 식입니다.
index
INTEGER로 평가되는 식입니다. ARRAY에서 검색할 요소의 위치를 지정합니다. 위치는 1이 아니라 0부터 시작합니다.
인덱스가 배열 경계 외부를 가리키거나 인덱스 요소가 존재하지 않는 경우(스파스 배열의 경우):
array
가 반정형 ARRAY인 경우 이 함수는 NULL을 반환합니다.array
가 정형 ARRAY인 경우 오류가 발생합니다.
variant
ARRAY 또는 OBJECT가 포함된 VARIANT 로 평가되는 식입니다.
object
키-값 페어를 포함하는 OBJECT 로 평가되는 식입니다.
field_name
VARCHAR로 평가되는 식입니다. 값을 검색할 키-값 페어의 키를 지정합니다.
field_name
은 빈 문자열이 아니어야 합니다.object
가 정형 OBJECT 인 경우field_name
에 대한 상수를 지정해야 합니다.object
에 지정된 키가 포함되지 않은 경우:object
가 반정형 OBJECT인 경우 함수는 NULL을 반환합니다.object
가 정형 OBJECT인 경우 오류가 발생합니다.
map
MAP 으로 평가되는 식입니다.
key
값을 검색할 키-값 페어의 키입니다.
map
에 지정된 키가 없으면 함수는 NULL을 반환합니다.
반환¶
반환된 값은 ARRAY의 지정된 요소 또는 OBJECT의 키-값 페어에 지정된 키에 해당하는 값입니다.
입력 오브젝트가 반정형 OBJECT, ARRAY 또는 VARIANT인 경우 함수는 VARIANT를 반환합니다. 데이터 타입은 VARIANT입니다. 왜냐하면,
ARRAY에서 각 요소가 VARIANT 타입입니다.
OBJECT에서 각 키-값 페어의 값이 VARIANT 타입니다.
입력 오브젝트가 정형 OBJECT, 정형 ARRAY 또는 MAP 인 경우 함수는 오브젝트에 대해 지정된 유형의 값을 반환합니다.
예를 들어 입력 오브젝트의 유형이 ARRAY(NUMBER)인 경우 함수는 NUMBER를 반환합니다.
사용법 노트¶
GET은
field_name
에 대/소문자 구분 일치를 적용합니다. 대/소문자를 구분하지 않는 일치의 경우, GET_IGNORE_CASE 를 사용하십시오.첫 번째 매개 변수의 타입이 VARIANT인 경우:
두 번째 매개 변수가 VARCHAR 타입(예:
field_name
)인 경우variant
에 OBJECT가 포함되어 있지 않으면 함수는 NULL을 반환합니다.두 번째 매개 변수가 INTEGER 타입(예:
index
)인 경우variant
에 ARRAY가 포함되어 있지 않으면 함수는 NULL을 반환합니다.
예¶
간단한 데이터로 테이블 만들기:
CREATE TABLE vartab (a ARRAY, o OBJECT, v VARIANT); INSERT INTO vartab (a, o, v) SELECT ARRAY_CONSTRUCT(2.71, 3.14), OBJECT_CONSTRUCT('Ukraine', 'Kyiv'::VARIANT, 'France', 'Paris'::VARIANT), TO_VARIANT(OBJECT_CONSTRUCT('weatherStationID', 42::VARIANT, 'timestamp', '2022-03-07 14:00'::TIMESTAMP_LTZ::VARIANT, 'temperature', 31.5::VARIANT, 'sensorType', 'indoor'::VARIANT)) ;SELECT a, o, v FROM vartab; +---------+----------------------+-------------------------------------------------+ | A | O | V | |---------+----------------------+-------------------------------------------------| | [ | { | { | | 2.71, | "France": "Paris", | "sensorType": "indoor", | | 3.14 | "Ukraine": "Kyiv" | "temperature": 31.5, | | ] | } | "timestamp": "2022-03-07 14:00:00.000 -0800", | | | | "weatherStationID": 42 | | | | } | +---------+----------------------+-------------------------------------------------+
ARRAY의 첫 번째 요소 추출하기:
SELECT GET(a, 0) FROM vartab; +-----------+ | GET(A, 0) | |-----------| | 2.71 | +-----------+
국가 이름이 주어진 경우, 국가 이름과 수도가 포함된 OBJECT에서 해당 국가의 수도 이름 추출:
SELECT GET(o, 'Ukraine') FROM vartab; +-------------------+ | GET(O, 'UKRAINE') | |-------------------| | "Kyiv" | +-------------------+
OBJECT를 포함하는 VARIANT에서 온도 추출:
SELECT GET(v, 'temperature') FROM vartab; +-----------------------+ | GET(V, 'TEMPERATURE') | |-----------------------| | 31.5 | +-----------------------+
자세한 예는 반정형 데이터 쿼리하기 를 참조하십시오.
GET을 XMLGET과 함께 사용하는 예는 XMLGET 의 예 및 사용법 노트 섹션을 참조하십시오.