カテゴリ:

半構造化データ関数と構造化データ関数 (マップ)

MAP_ENTRIES

:doc:`MAP </sql-reference/data-types-structured>`値の各エントリのキーと値のペアオブジェクトのARRAY値を返します。

構文

MAP_ENTRIES( <map> )

引数

map

入力MAP値。

戻り値

各要素が入力MAP値のエントリに対応する``key``フィールドと``value``フィールドを持つ:ref:`OBJECT <label-data_type_object>`である、ARRAY値を返します。

map が NULL の場合、関数は NULL を返します。

:samp:`{map}`が空の場合、関数は空のARRAY値を返します。

返されるARRAY値のエントリの順序は未定義です。

使用上の注意

  • この関数は引数が1つの場合のみ受け付けられます。引数なしまたは複数の引数で関数を呼び出すとエラーになります。

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    |
+---------+