カテゴリ:

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

ARRAY_GENERATE_RANGE

指定された範囲内の整数値の ARRAY を返します(例: [2, 3, 4])。

構文

ARRAY_GENERATE_RANGE( <start> , <stop> [ , <step> ] )
Copy

引数

必須:

start

返される数値範囲内の最初の数値。

INTEGER に評価される式を指定する必要があります。

stop

範囲内の最後の数値。この数値は返される数値の範囲に 含まれない ことに注意してください。

たとえば、 ARRAY_GENERATE_RANGE(1, 5)[1, 2, 3, 4] を返します(5 は含まれません)。

INTEGER に評価される式を指定する必要があります。

オプション:

step

配列内の後続の各数値を増分または減分する量。例:

  • ARRAY_GENERATE_RANGE(0, 16, 5)[0, 5, 10, 15] を返します

  • ARRAY_GENERATE_RANGE(0, -16, -5)[0, -5, -10, -15] を返します

正または負の数値を指定できます。0は指定できません。

デフォルト値は 1 です。

戻り値

指定された範囲内の整数の ARRAY。

いずれかの引数が NULL の場合、関数は NULL を返します。

使用上の注意

  • start の後、後続の要素は step に基づいて stop (ただし、その値自体は含まない)まで増減(step が正か負かによる)します。

    例:

    • ARRAY_GENERATE_RANGE(10, 50, 10) は、 [10, 20, 30, 40] を返します。

    • ARRAY_GENERATE_RANGE(-10, -50, -10) は、 [-10, -20, -30, -40] を返します。

  • この関数は、次のいずれかの条件下で空の ARRAY を返します。

    • start = stop

    • step は正の数であり、 start > stop です。

    • step は負の数であり、 start < stop です。

    例:

    • ARRAY_GENERATE_RANGE(2, 2, 4) は、 [] を返します。

    • ARRAY_GENERATE_RANGE(8, 2, 2) は、 [] を返します。

    • ARRAY_GENERATE_RANGE(2, 8, -2) は、 [] を返します。

次の例は、2から始まり5の前で終わる数値範囲を含む ARRAY を返します。

SELECT ARRAY_GENERATE_RANGE(2, 5);
Copy
+----------------------------+
| ARRAY_GENERATE_RANGE(2, 5) |
|----------------------------|
| [                          |
|   2,                       |
|   3,                       |
|   4                        |
| ]                          |
+----------------------------+

次の例は、5から始まり25の前で終わり、値が10ずつ増加する数値範囲を含む ARRAY を返します。

SELECT ARRAY_GENERATE_RANGE(5, 25, 10);
Copy
+---------------------------------+
| ARRAY_GENERATE_RANGE(5, 25, 10) |
|---------------------------------|
| [                               |
|   5,                            |
|   15                            |
| ]                               |
+---------------------------------+

次の例は、-5から始まり-25の前で終わり、値が-10ずつ減少する数値範囲を含む ARRAY を返します。

SELECT ARRAY_GENERATE_RANGE(-5, -25, -10);
Copy
+------------------------------------+
| ARRAY_GENERATE_RANGE(-5, -25, -10) |
|------------------------------------|
| [                                  |
|   -5,                              |
|   -15                              |
| ]                                  |
+------------------------------------+