카테고리:

반정형 및 정형 데이터 함수 (추출)

GET

ARRAY 또는 OBJECT (또는 ARRAY 또는 OBJECT를 포함하는 VARIANT)에서 값을 추출합니다.

인자 중 하나가 NULL이면 NULL을 반환합니다.

이 함수를 GET DML 명령과 혼동해서는 안 됩니다.

참고 항목:

GET_IGNORE_CASE , GET_PATH , :

구문

ARRAY (또는 ARRAY를 포함하는 VARIANT)

GET( <array> , <index> ) GET( <variant> , <index> ) 
Copy

OBJECT (또는 OBJECT를 포함하는 VARIANT)

GET( <object> , <field_name> ) GET( <variant> , <field_name> ) 
Copy

MAP

GET( <map> , <key> ) 
Copy

인자

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)) ; 
Copy
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 | | | | } | +---------+----------------------+-------------------------------------------------+ 
Copy

ARRAY의 첫 번째 요소 추출하기:

SELECT GET(a, 0) FROM vartab; +-----------+ | GET(A, 0) | |-----------| | 2.71 | +-----------+ 
Copy

국가 이름이 주어진 경우, 국가 이름과 수도가 포함된 OBJECT에서 해당 국가의 수도 이름 추출:

SELECT GET(o, 'Ukraine') FROM vartab; +-------------------+ | GET(O, 'UKRAINE') | |-------------------| | "Kyiv" | +-------------------+ 
Copy

OBJECT를 포함하는 VARIANT에서 온도 추출:

SELECT GET(v, 'temperature') FROM vartab; +-----------------------+ | GET(V, 'TEMPERATURE') | |-----------------------| | 31.5 | +-----------------------+ 
Copy

자세한 예는 반정형 데이터 쿼리하기 를 참조하십시오.

GET을 XMLGET과 함께 사용하는 예는 XMLGET 의 예 및 사용법 노트 섹션을 참조하십시오.