GET_IGNORE_CASE

GET_IGNORE_CASE

객체에서 필드 값을 추출하는 함수예요. GET과 비슷하지만 필드 이름 매칭에 대소문자 구분 없이 수행한다는 점이 달라요. 인자 중 하나가 NULL이면 NULL을 돌려줘요.

출처: 공식 문서

본문

객체에서 필드 값을 추출하며, 두 인자 중 하나가 NULL이면 NULL을 반환합니다.

참고 이 함수는 GET과 비슷하지만 필드 이름에 대소문자 구분 없는 매칭을 적용합니다.

참고 (See also): GET

구문 (Syntax)

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

GET_IGNORE_CASE( <object> , <field_name> )

GET_IGNORE_CASE( <variant> , <field_name> )

MAP

GET_IGNORE_CASE( <map> , <key> )

인자 (Arguments)

variant

ARRAY 또는 OBJECT를 포함하는 VARIANT로 평가되는 표현식입니다.

object

키-값 쌍을 포함하는 OBJECT로 평가되는 표현식입니다.

field_name

VARCHAR로 평가되는 표현식입니다. 값을 검색하려는 키-값 쌍의 키를 지정합니다. field_name은 빈 문자열이면 안 됩니다. object가 구조화된(structured) OBJECT이면 field_name에 상수를 지정해야 합니다. object가 지정된 키를 포함하지 않으면: object가 반구조화된(semi-structured) OBJECT이면 함수는 NULL을 반환하고, object가 구조화된 OBJECT이면 오류가 발생합니다.

map

MAP으로 평가되는 표현식입니다.

key

값을 검색하려는 키-값 쌍의 키입니다. map이 지정된 키를 포함하지 않으면 함수는 NULL을 반환합니다.

반환값 (Returns)

  • 반환값은 ARRAY의 지정된 요소이거나, OBJECT의 키-값 쌍에서 지정된 키에 대응하는 값입니다.
  • 입력 객체가 반구조화된 OBJECT, ARRAY 또는 VARIANT 값이면 함수는 VARIANT 값을 반환합니다. 값의 데이터 타입이 VARIANT인 이유는:
    • ARRAY 값에서 각 요소는 VARIANT 타입입니다.
    • OBJECT 값에서 각 키-값 쌍의 값은 VARIANT 타입입니다.
  • 입력 객체가 구조화된 OBJECT, 구조화된 ARRAY 또는 MAP이면 함수는 객체에 대해 지정된 타입의 값을 반환합니다. 예를 들어 입력 객체의 타입이 ARRAY(NUMBER)이면 함수는 NUMBER 값을 반환합니다.

사용 참고 (Usage notes)

  • 이 함수는 찾는 첫 번째 정확히 일치하는 항목을 반환합니다. 함수가 모호한(대소문자 구분 없는) 일치만 찾으면 그 일치 중 하나의 값을 반환합니다. 다만 어떤 모호한 필드 이름이 먼저 일치할지는 보장할 수 없습니다.
  • GET_IGNORE_CASE는 다음 두 가지 방식으로 호출할 수 있는 이항 함수입니다:
    • object가 OBJECT 값이고 field_name이 문자열 값(상수 또는 표현식)인 경우. 이 변형은 객체 값에서 주어진 이름을 가진 필드의 값을 추출합니다.
    • v가 VARIANT 값이고 field_name이 문자열 값(상수 또는 표현식)인 경우. object와 함께 GET_IGNORE_CASE를 사용하는 것과 비슷하게 동작하지만, 추가로 v가 객체 값을 포함하는지 확인합니다(그리고 v가 객체를 포함하지 않으면 NULL을 반환합니다).

예제 (Examples)

객체에서 필드 값을 추출합니다. 함수는 정확히 일치하는 항목의 값을 반환합니다:

SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3, "AA":4}')),'aA') as output;

+--------+
| OUTPUT |
|--------|
| 2      |
+--------+

객체에서 필드 값을 추출합니다. 함수가 정확히 일치하는 항목을 찾지 못해 모호한 일치 중 하나를 반환합니다:

SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3}')),'AA') as output;

+--------+
| OUTPUT |
|--------|
| 3      |
+--------+

더 자세한 예제는 Querying Semi-structured Data를 참고하세요.

더 알아보기 (Learn more)