Kategorien:

Semistrukturierte Datenfunktionen (Array/Objekt)

ARRAY_POSITION

Gibt den ersten vorkommenden Index eines Elements in einem Array zurück.

Syntax

ARRAY_POSITION( <variant_expr> , <array> )

Argumente

variant_expr

Dieser Ausdruck sollte einen VARIANT-Wert ergeben. Die Funktion sucht nach dem ersten Auftreten dieses Werts im Array.

array

Das zu durchsuchende Array.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist INTEGER.

Nutzungshinweise

  • Der Rückgabewert ist 0-basiert, nicht 1-basiert. Wenn also variant_expr mit dem ersten Element im Array übereinstimmt, gibt diese Funktion 0 zurück, nicht 1.

  • Wenn der Wert VARIANT nicht im ARRAY enthalten ist, wird NULL zurückgegeben.

Beispiele

Die folgenden Beispiele zeigen die Verwendung dieser Funktion:

SELECT ARRAY_POSITION('hello'::variant, array_construct('hello', 'hi'));
+------------------------------------------------------------------+
| ARRAY_POSITION('HELLO'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|------------------------------------------------------------------|
|                                                                0 |
+------------------------------------------------------------------+
SELECT ARRAY_POSITION('hi'::variant, array_construct('hello', 'hi'));
+---------------------------------------------------------------+
| ARRAY_POSITION('HI'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|---------------------------------------------------------------|
|                                                             1 |
+---------------------------------------------------------------+
SELECT ARRAY_POSITION('hello'::variant, array_construct('hola', 'bonjour'));
+----------------------------------------------------------------------+
| ARRAY_POSITION('HELLO'::VARIANT, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------------------|
|                                                                 NULL |
+----------------------------------------------------------------------+