카테고리:

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

GET_PATH , :

경로 이름을 사용하여 반정형 데이터에서 값을 추출합니다.

GET_PATH는 GET 의 변형입니다. 첫 번째 인자로서 VARIANT, OBJECT 또는 ARRAY 열 이름을 사용하고, 두 번째 인자로서 제공된 경로 이름에 따라 필드 또는 요소의 값을 추출합니다.

구문

GET_PATH( <column_identifier> , '<path_name>' )

<column_identifier>:<path_name>

:( <column_identifier> , '<path_name>' )
Copy

인자

column_identifier

OBJECT, ARRAY 또는 VARIANT 열로 평가되는 식입니다.

path_name

VARCHAR로 평가되는 식입니다. 이는 추출하려는 필드 또는 요소의 경로를 지정합니다.

정형 유형 의 경우 문자열 상수를 지정해야 합니다.

반환

  • 반환된 값은 ARRAY의 지정된 요소 또는 OBJECT의 키-값 페어에 지정된 키에 해당하는 값입니다.

  • 입력 오브젝트가 반정형 OBJECT, ARRAY 또는 VARIANT인 경우 함수는 VARIANT를 반환합니다. 데이터 타입은 VARIANT입니다. 왜냐하면,

    • ARRAY에서 각 요소가 VARIANT 타입입니다.

    • OBJECT에서 각 키-값 페어의 값이 VARIANT 타입니다.

  • 입력 오브젝트가 정형 OBJECT, 정형 ARRAY 또는 MAP 인 경우 함수는 오브젝트에 대해 지정된 유형의 값을 반환합니다.

    예를 들어 입력 오브젝트의 유형이 ARRAY(NUMBER)인 경우 함수는 NUMBER를 반환합니다.

사용법 노트

  • GET_PATH는 GET 함수 체인과 동등합니다. 경로 이름이 어떤 요소에도 해당하지 않는 경우, NULL을 반환합니다.

  • 경로 이름 구문은 표준 JavaScript 표기법입니다. 마침표(예: .)와 인덱스 연산자(예: [<인덱스>])가 앞에 오는 필드 이름(식별자)의 연결로 구성됩니다.

    • 첫 번째 필드 이름에는 선행 마침표를 지정할 필요가 없습니다.

    • 인덱스 연산자의 인덱스 값은 음수가 아닌 10진수(배열의 경우)이거나, 작은따옴표 또는 큰따옴표로 묶인 문자열 리터럴(오브젝트 필드의 경우)일 수 있습니다.

    자세한 내용은 반정형 데이터 쿼리하기 섹션을 참조하십시오.

  • 또한, GET_PATH는 경로 지정자에서 열 이름(마침표를 포함할 수 있음)을 분리하는 추출 연산자로서 : 문자를 사용하는 구문 바로 가기를 지원합니다.

    구문 일관성을 유지하기 위해 경로 표기법은 SQL 스타일의 큰따옴표로 묶인 식별자도 지원하며 경로 구분자로서의 : 사용도 지원합니다.

    : 연산자를 사용하는 경우, 모든 정수 또는 문자열 하위 식을 [] 내에 포함할 수 있습니다.

vartab 테이블에서 필드 name 을 추출합니다.

SELECT GET_PATH(v, 'attr[0].name') FROM vartab;
Copy

이것은 첫 번째 예와 동일하지만, : 를 추출 연산자로 사용합니다.

SELECT v:attr[0].name FROM vartab;
Copy

추출 연산자 : 는 왼쪽 결합형입니다. 위의 예에서 v:attr[0]:name 을 사용하는 것은 왼쪽 : 와 같은 효과가 있으며, 오른쪽 추출 연산자 :name 필드 값을 추출하는 베리언트 값(오브젝트 포함)을 생성합니다.

이는 첫 번째 예와 동일하지만, SQL 스타일의 큰따옴표로 묶인 식별자와 : 를 경로 구분 기호로 사용합니다.

SELECT GET_PATH('v:"attr"[0]:"name"') FROM vartab;
Copy