- Categories:
Semi-structured and 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¶
value_exprValue to find in
array.If
arrayis a semi-structured ARRAY,value_exprmust evaluate to a VARIANT.If
arrayis a structured ARRAY,value_exprmust evaluate to a type that is comparable to the type of the ARRAY.
arrayThe ARRAY to search.
Returns¶
The function returns an INTEGER specifying the position of value_expr in array.
Usage notes¶
The return value is 0-based, not 1-based. In other words, if the
value_exprmatches the first element in the array, this function returns 0, not 1.If the value is not contained in the ARRAY, the function returns NULL.
If you specify NULL for
value_expr, the function returns the position of the first NULL in the array.
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 | +----------------------------------------------------------------------+