- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
ARRAY_SIZE¶
Gibt die Größe des Eingabearrays zurück.
Eine Variante von ARRAY_SIZE nutzt einen VARIANT-Wert als Eingabe. Wenn der VARIANT-Wert ein Array enthält, wird die Größe des Arrays zurückgegeben; andernfalls wird NULL zurückgegeben, wenn der Wert kein Array ist.
Syntax¶
ARRAY_SIZE( <array> )
ARRAY_SIZE( <variant> )
Rückgabewerte¶
Der Datentyp des zurückgegebenen Werts ist INTEGER
.
Nutzungshinweise¶
Nutzt einen ARRAY-Wert als Eingabe und gibt die Größe des Arrays zurück (d. h. den größten Index + 1).
Wenn das Array ein dünnbesetztes Array ist, bedeutet dies, dass die Größenangabe sowohl die undefinierten als auch die definierten Elemente berücksichtigt.
Ein NULL-Argument gibt als Ergebnis NULL zurück.
Beispiele¶
Hier ist ein einfaches Beispiel:
SELECT ARRAY_SIZE(ARRAY_CONSTRUCT(1, 2, 3)) AS SIZE; +------+ | SIZE | |------| | 3 | +------+
Hier ist ein etwas komplexeres Beispiel, dieses Mal mit dem Datentyp VARIANT:
CREATE OR replace TABLE colors (v variant); INSERT INTO colors SELECT parse_json(column1) AS v FROM VALUES ('[{r:255,g:12,b:0},{r:0,g:255,b:0},{r:0,g:0,b:255}]'), ('[{r:255,g:128,b:0},{r:128,g:255,b:0},{r:0,g:255,b:128},{r:0,g:128,b:255},{r:128,g:0,b:255},{r:255,g:0,b:128}]') v;Abrufen der Größe für jedes Array in der Spalte VARIANT:
SELECT ARRAY_SIZE(v) from colors; +---------------+ | ARRAY_SIZE(V) | |---------------| | 3 | | 6 | +---------------+Abrufen des letzten Elements für jedes Array in der Spalte VARIANT:
SELECT GET(v, ARRAY_SIZE(v)-1) FROM colors; +-------------------------+ | GET(V, ARRAY_SIZE(V)-1) | |-------------------------| | { | | "b": 255, | | "g": 0, | | "r": 0 | | } | | { | | "b": 128, | | "g": 0, | | "r": 255 | | } | +-------------------------+