メインコンテンツまでスキップ
バージョン: Candidate-4.1

arrays_zip

指定された配列をインデックスでマージし、入力配列の n 番目の値をすべて含む構造体の配列にします。配列の長さが異なる場合、欠けている要素は NULL で埋められます。

Syntax

arrays_zip(array_1, array_2[, ...])

Parameters

  • array_n: マージされる配列。各配列はサポートされている任意の型の要素を含むことができます。

Return value

入力配列の n 番目のフィールドを含む n 番目の構造体を持つ STRUCT の ARRAY を返します。入力配列の長さが異なる場合、短い配列は NULL 値で埋められます。

Usage notes

  • 入力配列の長さが異なる場合、結果配列の長さは入力配列の中で最も長いものになります。
  • 短い配列の欠けている値は NULL で埋められます。
  • いずれかの入力配列が NULL の場合、結果は NULL になります。
  • すべての入力配列が空の場合、結果は空の配列になります。

Examples

Example 1: 同じ長さの2つの配列をマージします。

mysql> SELECT arrays_zip([1, 2], ['a', 'b']) AS result;
+---------------------------------------------------+
| result |
+---------------------------------------------------+
| [{"col1":"1","col2":"a"},{"col1":"2","col2":"b"}] |
+---------------------------------------------------+

Example 2: 異なる長さの2つの配列をマージします。

mysql> SELECT arrays_zip([1, 2], ['a', null, 'c']) AS result;
+-----------------------------------------------------------------------------+
| result |
+-----------------------------------------------------------------------------+
| [{"col1":"1","col2":"a"},{"col1":"2","col2":null},{"col1":null,"col2":"c"}] |
+-----------------------------------------------------------------------------+

Example 3: 3つの配列をマージします。

mysql> SELECT arrays_zip([1, 2, 3], ['a', 'b', 'c'], [10, 20, 30]) AS result;
+---------------------------------------------------------------------------------------------------------------+
| result |
+---------------------------------------------------------------------------------------------------------------+
| [{"col1":"1","col2":"a","col3":"10"},{"col1":"2","col2":"b","col3":"20"},{"col1":"3","col2":"c","col3":"30"}] |
+---------------------------------------------------------------------------------------------------------------+

Example 4: 空の配列を2つマージします。

mysql> SELECT arrays_zip([], []) AS result;
+--------+
| result |
+--------+
| [] |
+--------+

Example 5: 単一の配列をマージします。

mysql> SELECT arrays_zip([1, 2, 3]) AS result;
+------------------------------------------+
| result |
+------------------------------------------+
| [{"col1":"1"},{"col1":"2"},{"col1":"3"}] |
+------------------------------------------+

Example 6: 1つの配列が NULL の場合にマージします。

mysql> SELECT arrays_zip(null, [1, 2]) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+

Example 7: NULL 値を含む異なる型の配列をマージします。

mysql> SELECT arrays_zip([1, null, 3], ['a', 'b', null]) AS result;
+-----------------------------------------------------------------------------+
| result |
+-----------------------------------------------------------------------------+
| [{"col1":"1","col2":"a"},{"col1":null,"col2":"b"},{"col1":"3","col2":null}] |
+-----------------------------------------------------------------------------+

Example 8: テーブルデータから配列をマージします。

mysql> CREATE TABLE IF NOT EXISTS test (id INT, arr1 ARRAY<INT>, arr2 ARRAY<VARCHAR>) PROPERTIES ("replication_num"="1");
mysql> INSERT INTO test VALUES (1, [1, 2], ['a', 'b']), (2, [3, 4, 5], ['x', 'y']);
mysql> SELECT id, arrays_zip(arr1, arr2) AS result FROM test;
+------+----------------------------------------------------------------------------+
| id | result |
+------+----------------------------------------------------------------------------+
| 1 | [{"col1":"1","col2":"a"},{"col1":"2","col2":"b"}] |
| 2 | [{"col1":"3","col2":"x"},{"col1":"4","col2":"y"},{"col1":"5","col2":null}] |
+------+----------------------------------------------------------------------------+
Rocky the happy otterStarRocks Assistant

AI generated answers are based on docs and other sources. Please test answers in non-production environments.