カテゴリ:

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

ARRAY_REPEAT

要素のコピーを指定された数だけ含む:ref:`ARRAY <label-data_type_array>`値を返します。

構文

ARRAY_REPEAT( <element> , <count> )

引数

element

出力配列で繰り返す値です。

値は、任意の:doc:`半構造化データ型</sql-reference/data-types-semistructured>`(例:VARIANT、ARRAY、OBJECT)または任意の標準Snowflakeデータ型(例:NUMBER、VARCHAR、BOOLEAN、DATE)にすることができます。

MAPなどの:doc:`構造化型</sql-reference/data-types-structured>`はサポートされていません。

count

:samp:`{element}`を繰り返す回数を指定するINTEGER式。

戻り値

この関数は、:samp:`{element}`のコピーを:samp:`{count}`個含む:ref:`半構造化ARRAY <label-data_type_array>`値を返します。

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

使用上の注意

  • :samp:`{count}`が0または負の数の場合、関数は空のARRAYを返します。

  • element`がNULLの場合、関数は:samp:`count NULL値のARRAYを返します。

  • :samp:`{element}`値は、結果のARRAYで暗黙的にVARIANTに変換されます。

次の例では、INTEGER値を3回繰り返します。

SELECT ARRAY_REPEAT(42, 3);
+---------------------+
| ARRAY_REPEAT(42, 3) |
|---------------------|
| [                   |
|   42,               |
|   42,               |
|   42                |
| ]                   |
+---------------------+

次の例では、STRING値を繰り返します。

SELECT ARRAY_REPEAT('hello', 2);
+--------------------------+
| ARRAY_REPEAT('hello', 2) |
|--------------------------|
| [                        |
|   "hello",               |
|   "hello"                |
| ]                        |
+--------------------------+

次の例では、ARRAY値を繰り返してネストされたARRAYを作成します。

SELECT ARRAY_REPEAT([1, 2], 2);
+-------------------------+
| ARRAY_REPEAT([1, 2], 2) |
|-------------------------|
| [                       |
|   [                     |
|     1,                  |
|     2                   |
|   ],                    |
|   [                     |
|     1,                  |
|     2                   |
|   ]                     |
| ]                       |
+-------------------------+

次の例は、カウント0が空のARRAY値を返すことを示しています。

SELECT ARRAY_REPEAT('x', 0);
+----------------------+
| ARRAY_REPEAT('x', 0) |
|----------------------|
| []                   |
+----------------------+

次の例は、NULLのカウントがNULLを返すことを示しています。

SELECT ARRAY_REPEAT('hi', NULL);
+--------------------------+
| ARRAY_REPEAT('hi', NULL) |
|--------------------------|
| NULL                     |
+--------------------------+