Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)

ARRAY_GENERATE_RANGE

Gibt ein ARRAY mit Ganzzahl-Werten eines bestimmten Bereichs zurück (z. B. [2, 3, 4]).

Syntax

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

Argumente

Erforderlich:

start

Die erste Zahl im Bereich, die zurückgegeben werden soll.

Sie müssen einen Ausdruck angeben, der einen INTEGER-Wert ergibt.

stop

Die letzte Zahl im Bereich. Beachten Sie, dass diese Zahl nicht in dem Bereich der zurückgegebenen Zahlen enthalten ist.

Beispiel: ARRAY_GENERATE_RANGE(1, 5) gibt [1, 2, 3, 4] zurück (was 5 nicht einschließt).

Sie müssen einen Ausdruck angeben, der einen INTEGER-Wert ergibt.

Optional:

step

Der Betrag, um den jede nachfolgende Zahl im Array erhöht oder verringert wird. Beispiel:

  • ARRAY_GENERATE_RANGE(0, 16, 5) gibt [0, 5, 10, 15] zurück.

  • ARRAY_GENERATE_RANGE(0, -16, -5) gibt [0, -5, -10, -15] zurück.

Sie können eine positive oder negative Zahl angeben. Sie können nicht 0 angeben.

Der Standardwert ist 1.

Rückgabewerte

Ein ARRAY von Ganzzahlen im angegebenen Bereich.

Wenn eines der Argumente NULL ist, gibt die Funktion NULL zurück.

Nutzungshinweise

  • Nach start erhöht oder verringert sich jedes nachfolgende Element um den Schrittwert step (je nachdem, ob step positiv oder negativ ist) bis zum Endwert stop (aber nicht einschließlich).

    Beispiel:

    • ARRAY_GENERATE_RANGE(10, 50, 10) gibt [10, 20, 30, 40] zurück.

    • ARRAY_GENERATE_RANGE(-10, -50, -10) gibt [-10, -20, -30, -40] zurück.

  • Die Funktion gibt unter einer der folgenden Bedingungen einen leeren ARRAY zurück:

    • start = stop.

    • step ist eine positive Zahl und start > stop.

    • step ist eine negative Zahl und start < stop.

    Beispiel:

    • ARRAY_GENERATE_RANGE(2, 2, 4) gibt [] zurück.

    • ARRAY_GENERATE_RANGE(8, 2, 2) gibt [] zurück.

    • ARRAY_GENERATE_RANGE(2, 8, -2) gibt [] zurück.

Beispiele

Das folgende Beispiel gibt ein ARRAY zurück, das einen Zahlenbereich enthält, der mit 2 beginnt und vor 5 endet:

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

Das folgende Beispiel gibt ein ARRAY zurück, das einen Zahlenbereich enthält, der mit 5 beginnt und vor 25 endet und dessen Wert sich um 10 erhöht:

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

Das folgende Beispiel gibt ein ARRAY zurück, das einen Zahlenbereich enthält, der mit -5 beginnt und vor -25 endet und dessen Wert sich um -10 verringert:

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