メインコンテンツまでスキップ
に最終更新

ARRAY

array​

SinceVersion 2.0.0

説明​

配列を作成します。この関数は引数なしの場合を含め、任意の数の引数を受け取り、入力したすべての要素を含む配列を返します。

構文​

array([element1, element2, ...])

パラメータ​

  • element1, element2, ...: 任意の型。配列に含める要素です。引数なしの場合を含め、任意の数の引数を指定できます。

サポートされる要素の型:

  • 数値型: TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, DECIMAL
  • 文字列型: CHAR, VARCHAR, STRING
  • 日付・時刻型: DATE, DATETIME, DATEV2, DATETIMEV2
  • 真偽値型: BOOLEAN
  • IP 型: IPV4, IPV6
  • 複合型: ARRAY, MAP, STRUCT

戻り値​

戻り値の型: ARRAY

戻り値の意味:

  • 入力したすべての要素を含む配列を返します
  • 引数を指定しない場合は空の配列を返します

使用上の注意:

  • 同じデータ型の入力要素を配列にまとめます。要素の型に互換性がない場合は、型変換を試みます
  • 複合型と基本型を互換性のある型として配列にまとめることはできません。また、異なる複合型同士もまとめることはできません
  • 引数なしの場合を含め、任意の数の引数を指定できます

クエリ例:

複数の要素を持つ配列を作成する:

SELECT array(1, 2, 3, 4, 5);
+----------------------+
| array(1, 2, 3, 4, 5) |
+----------------------+
| [1, 2, 3, 4, 5] |
+----------------------+

異なる型の要素を持つ配列を作成する:

SELECT array(1, 'hello', 3.14, true);
+-------------------------------+
| array(1, 'hello', 3.14, true) |
+-------------------------------+
| ["1", "hello", "3.14", "1"] |
+-------------------------------+

空の配列を作成する:

SELECT array();
+----------+
| array() |
+----------+
| [] |
+----------+

null 要素を持つ配列を作成する:

SELECT array(1, null, 3, null, 5);
+--------------------------------+
| array(1, null, 3, null, 5) |
+--------------------------------+
| [1, null, 3, null, 5] |
+--------------------------------+

複合型の例​

配列を要素として含む配列を作成する:

SELECT array([1,2], [3,4], [5,6]);
+----------------------------+
| array([1,2], [3,4], [5,6]) |
+----------------------------+
| [[1, 2], [3, 4], [5, 6]] |
+----------------------------+

マップを要素として含む配列を作成する:

SELECT array({'a':1}, {'b':2}, {'c':3});
+----------------------------------+
| array({'a':1}, {'b':2}, {'c':3}) |
+----------------------------------+
| [{"a":1}, {"b":2}, {"c":3}] |
+----------------------------------+

構造体を要素として含む配列を作成する:

SELECT array(named_struct('name','Alice','age',20), named_struct('name','Bob','age',30));
+-----------------------------------------------------------------------------------+
| array(named_struct('name','Alice','age',20), named_struct('name','Bob','age',30)) |
+-----------------------------------------------------------------------------------+
| [{"name":"Alice", "age":20}, {"name":"Bob", "age":30}] |
+-----------------------------------------------------------------------------------+

複合型と基本型を混在させるとエラーが発生する:

SELECT array([1,2], 'hello');
ERROR 1105 (HY000): errCode = 2, detailMessage = can not cast from origin type ARRAY<TINYINT> to target type=TEXT

異なる複合型を混在させるとエラーが発生する:

SELECT array([1,2], named_struct('name','Alice','age',20));
ERROR 1105 (HY000): errCode = 2, detailMessage = Can not find the compatibility function signature: array(ARRAY<TINYINT>, STRUCT<name:VARCHAR(5),age:TINYINT>)

キーワード​

ARRAY