MAP_ENTRIES

MAP_ENTRIES

MAP 값의 각 항목을 키-값 쌍 객체로 바꿔 ARRAY로 돌려주는 함수예요. MAP의 모든 엔트리를 한 번에 펼쳐 확인하고 싶을 때 유용해요.

출처: 공식 문서

본문

MAP 값의 각 항목에 대해 키-값 쌍 객체들의 ARRAY 값을 반환합니다.

구문 (Syntax)

MAP_ENTRIES( <map> )

인자 (Arguments)

map

입력 MAP 값입니다.

반환값 (Returns)

입력 MAP 값의 항목에 대응하는 key 필드와 value 필드를 가진 OBJECT를 각 요소로 하는 ARRAY 값을 반환합니다.

  • map이 NULL이면 함수는 NULL을 반환합니다.
  • map이 비어 있으면 함수는 빈 ARRAY 값을 반환합니다.
  • 반환된 ARRAY 값에서 항목의 순서는 정의되어 있지 않습니다.

사용 참고 (Usage notes)

  • 함수는 정확히 하나의 인자를 받습니다. 인자 없이 또는 둘 이상의 인자로 호출하면 오류가 발생합니다.

예제 (Examples)

MAP 값의 항목을 키-값 쌍 객체로 반환합니다:

SELECT MAP_ENTRIES({'a': 1, 'b': 2}::MAP(VARCHAR, INT)) AS entries;
+-----------------+
| ENTRIES         |
|-----------------|
| [               |
|   {             |
|     "key": "a", |
|     "value": 1  |
|   },            |
|   {             |
|     "key": "b", |
|     "value": 2  |
|   }             |
| ]               |
+-----------------+

빈 MAP 값에 대해 빈 ARRAY 값을 반환합니다:

SELECT MAP_ENTRIES({}::MAP(VARCHAR, INT)) AS entries;
+---------+
| ENTRIES |
|---------|
| []      |
+---------+

값이 ARRAY 타입인 MAP의 항목을 반환합니다:

SELECT MAP_ENTRIES({'a': [1, 2, 3], 'b': [4, 5]}::MAP(VARCHAR, ARRAY(INT))) AS entries;
+-----------------+
| ENTRIES         |
|-----------------|
| [               |
|   {             |
|     "key": "a", |
|     "value": [  |
|       1,        |
|       2,        |
|       3         |
|     ]           |
|   },            |
|   {             |
|     "key": "b", |
|     "value": [  |
|       4,        |
|       5         |
|     ]           |
|   }             |
| ]               |
+-----------------+

NULL 입력에 대해 NULL을 반환합니다:

SELECT MAP_ENTRIES(NULL::MAP(VARCHAR, INT)) AS entries;
+---------+
| ENTRIES |
|---------|
| NULL    |
+---------+

더 알아보기 (Learn more)