カテゴリ:

半構造化データ関数と構造化データ関数 (配列/オブジェクト)

ARRAYS_TO_OBJECT

ある入力 ARRAY で指定されたキーと、別の入力 ARRAY で指定された値を含む OBJECT を返します。

構文

ARRAYS_TO_OBJECT( <key_array> , <value_array> )
Copy

引数

key_array

新しい OBJECT のキーを指定する VARCHAR 値の ARRAY。

value_array

新しい OBJECT の値の ARRAY。この ARRAY は key_array と同じ長さでなければなりません。この ARRAY の値は key_array のキーに対応する必要があります。

戻り値

この関数は OBJECT 型の値を返します。OBJECT には、入力 ARRAYs で指定されたキーと値が含まれています。

使用上の注意

  • key_array の要素が文字列でない場合、この関数は次のエラーを報告します。

    215002 (22000): Key supplied for ARRAYS_TO_OBJECT does not have string type
    
  • key_arrayvalue_array の長さは等しくなければなりません。そうでない場合、この関数は次のエラーを報告します。

    215001 (22000): Key array and value array had unequal lengths in ARRAYS_TO_OBJECT
    
  • key_array の要素が NULL の場合、そのキーと対応する値は、返される OBJECT から省略されます。

    キーが NULL ではなく、 value_array の対応する要素が NULL の場合、キーと NULL 値は返される OBJECT に含まれます。

  • 返された OBJECT は、キーと値のペアの元の順序を保持するとは限りません。

  • この関数は、入力引数として 構造型 をサポートしていません。

次の例は、2つの入力 ARRAYs で指定されたキーと値のペアを含む OBJECT を返します。

SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, 2, 3]);
Copy
+-------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, 2, 3]) |
|-------------------------------------------------------|
| {                                                     |
|   "key1": 1,                                          |
|   "key2": 2,                                          |
|   "key3": 3                                           |
| }                                                     |
+-------------------------------------------------------+

次の例では、キーの ARRAY に NULL 値が含まれています。そのキーと対応する値は、返される OBJECT から省略されます。

SELECT ARRAYS_TO_OBJECT(['key1', NULL, 'key3'], [1, 2, 3]);
Copy
+-----------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', NULL, 'KEY3'], [1, 2, 3]) |
|-----------------------------------------------------|
| {                                                   |
|   "key1": 1,                                        |
|   "key3": 3                                         |
| }                                                   |
+-----------------------------------------------------+

次の例では、値の ARRAY に NULL 値が含まれています。その値と対応するキーは、返される OBJECT に含まれています。

SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, NULL, 3]);
Copy
+----------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, NULL, 3]) |
|----------------------------------------------------------|
| {                                                        |
|   "key1": 1,                                             |
|   "key2": null,                                          |
|   "key3": 3                                              |
| }                                                        |
+----------------------------------------------------------+