Retorna a posição da primeira ocorrência de um determinado element no array a. A contagem das posições dos elementos segue da esquerda para a direita e começa em 1.
Sintaxe
bigint array_position(array<T> <a>, T <element>)
Parâmetros
-
a: obrigatório. Especifica um array.
Temarray<T>especifica o tipo de dados dos elementos do array. Esta função aceita os seguintes tipos de dados:TINYINT, SMALLINT, INT e BIGINT
FLOAT e DOUBLE
BOOLEAN
DECIMAL e DECIMALVAL
DATE, DATETIME, TIMESTAMP, IntervalDayTime e IntervalYearMonth
STRING, BINARY, VARCHAR e CHAR
ARRAY, STRUCT e MAP
element: obrigatório. O elemento cuja posição deseja consultar. O tipo de dados desse elemento deve ser igual ao tipo de dados dos elementos no array a.
Valor de retorno
A função retorna um valor do tipo BIGINT. O valor de retorno varia de acordo com as seguintes regras:
Se o valor de a ou element for nulo, o valor retornado será null.
Se o elemento especificado não for encontrado, o valor retornado será 0.
Exemplos
-
Exemplo 1: Retornar a posição da primeira ocorrência de
1emarray(3, 2, 1). Instrução de exemplo:-- The return value is 3. select array_position(array(3, 2, 1), 1); -
Exemplo 2: O element especificado é null. Instrução de exemplo:
-- The return value is null. select array_position(array(3, 1, null), null);
Funções relacionadas
ARRAY_POSITION é uma função de tipo complexo. Para obter mais informações sobre as funções usadas para processar dados de tipos complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.