Categorias:

Funções de dados semiestruturados (Matriz/objeto)

ARRAY_POSITION

Retorna o índice da primeira ocorrência de um elemento de uma matriz.

Sintaxe

ARRAY_POSITION( <variant_expr> , <array> )
Copy

Argumentos

variant_expr

Esta expressão deve ser avaliada como um valor VARIANT. A função procura a primeira ocorrência deste valor na matriz.

array

A matriz a ser pesquisada.

Retornos

O tipo de dados do valor retornado é INTEGER.

Notas de uso

  • O valor de retorno é baseado em 0, e não em 1. Em outras palavras, se o variant_expr corresponder ao primeiro elemento da matriz, esta função retorna 0, e não 1.

  • Se o valor VARIANT não estiver contido no ARRAY, a função retorna NULL.

  • Se você especificar NULL para variant_expr, a função retornará a posição do primeiro NULL na matriz.

Exemplos

Os exemplos abaixo mostram como utilizar esta função:

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