- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
ARRAY_GENERATE_RANGE¶
指定された範囲内の整数値の ARRAY を返します(例: [2, 3, 4]
)。
構文¶
ARRAY_GENERATE_RANGE( <start> , <stop> [ , <step> ] )
引数¶
必須:
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);
+----------------------------+
| ARRAY_GENERATE_RANGE(2, 5) |
|----------------------------|
| [ |
| 2, |
| 3, |
| 4 |
| ] |
+----------------------------+
次の例は、5から始まり25の前で終わり、値が10ずつ増加する数値範囲を含む ARRAY を返します。
SELECT ARRAY_GENERATE_RANGE(5, 25, 10);
+---------------------------------+
| ARRAY_GENERATE_RANGE(5, 25, 10) |
|---------------------------------|
| [ |
| 5, |
| 15 |
| ] |
+---------------------------------+
次の例は、-5から始まり-25の前で終わり、値が-10ずつ減少する数値範囲を含む ARRAY を返します。
SELECT ARRAY_GENERATE_RANGE(-5, -25, -10);
+------------------------------------+
| ARRAY_GENERATE_RANGE(-5, -25, -10) |
|------------------------------------|
| [ |
| -5, |
| -15 |
| ] |
+------------------------------------+