Categories:
Semi-structured Data Functions (Array/Object)

ARRAY_POSITION

Returns the index of the first occurrence of an element in an array.

Syntax

ARRAY_POSITION( <variant_expr> , <array> )

Arguments

variant_expr
This expression should evaluate to a VARIANT value. The function searches for the first occurrence of this value in the array.
array
The array to be searched.

Returns

The data type of the returned value is INTEGER.

Usage Notes

  • The return value is 0-based, not 1-based. In other words, if the variant_expr matches the first element in the array, this function returns 0, not 1.
  • If the VARIANT value is not contained in the ARRAY, the function returns NULL.

Examples

The examples below show how to use this function:

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