Catégories :

Fonctions de données semi-structurées (tableau/objet)

ARRAY_POSITION

Renvoie l’index de la première occurrence d’un élément d’un tableau.

Syntaxe

ARRAY_POSITION( <variant_expr> , <array> )

Arguments

variant_expr

Cette expression devrait être évaluée à une valeur VARIANT. La fonction recherche la première occurrence de cette valeur dans le tableau.

array

Le tableau à rechercher.

Renvoie

Le type de données de la valeur renvoyée est INTEGER.

Notes sur l’utilisation

  • La valeur de retour est basée sur 0 et non sur 1. En d’autres termes, si variant_expr correspond au premier élément du tableau, cette fonction renvoie 0 et non 1.

  • Si la valeur VARIANT n’est pas contenue dans ARRAY, la fonction renvoie NULL.

Exemples

Les exemples ci-dessous montrent comment utiliser cette fonction :

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 |
+----------------------------------------------------------------------+