

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Função ARRAY\$1POSITIONS
<a name="array_positions"></a>

Exibe uma matriz de posições (índices) em que o elemento especificado aparece na matriz de entrada. Os índices são de base 0, em que 0 indica o primeiro elemento, 1 indica o segundo elemento e assim por diante. Exibirá uma matriz vazia se o elemento não for encontrado.

## Sintaxe
<a name="array_positions-syntax"></a>

```
ARRAY_POSITIONS( array, value [, null_match] )
```

## Argumentos
<a name="array_positions-arguments"></a>

 *array*   
Uma expressão SUPER que especifica a matriz na qual pesquisar.

 *valor*   
Um valor que especifica o elemento a ser pesquisado.

 *null\$1match*   
Um valor booliano que especifica como os valores NULL são tratados:  
+ *null\$1match* = FALSE: a pesquisa por NULL exibe NULL. Se a matriz contiver valores NULL e nenhuma correspondência for encontrada para um valor de pesquisa não NULL, exibirá NULL.
+ *null\$1match* = TRUE: os valores NULL são tratados como elementos válidos e pesquisáveis. Se a matriz contiver valores NULL e nenhuma correspondência for encontrada para um valor de pesquisa não NULL, exibirá uma matriz vazia.
O padrão é TRUE.  
O tratamento padrão de NULL também pode ser especificado pela opção de configuração:  

```
-- same as null_match = TRUE
SET default_array_search_null_handling to TRUE;
```

## Tipo de retorno
<a name="array_positions-return-type"></a>

A função ARRAY\$1POSITIONS exibe um tipo SUPER.

## Exemplo
<a name="array_positions-example"></a>

Os exemplos a seguir mostram a função ARRAY\$1POSITIONS.

```
SELECT ARRAY_POSITIONS(ARRAY('red', 'green', 'red'), 'red');
 array_positions 
-----------------
 [0,2]
(1 row)

SELECT ARRAY_POSITIONS(ARRAY(1, 2, 3), 4);
 array_positions 
-----------------
 []
(1 row)
```

Os exemplos a seguir mostram o comportamento da função com *null\$1match* definido como TRUE.

```
SET default_array_search_null_handling to TRUE;

-- NULL search is enabled
SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green', NULL), NULL);
 array_positions 
-----------------
 [1,3]
(1 row)

-- The array can contain NULLs
SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'blue', TRUE);
 array_positions 
-----------------
 []
(1 row)
```

Os exemplos a seguir mostram o comportamento da função com *null\$1match* definido como FALSE. Observe que, ao especificar o comportamento *null\$1match* na função, a configuração padrão será substituída.

```
-- same as null_match = TRUE
SET default_array_search_null_handling to TRUE;

-- NULL search is disabled. The default behavior is overridden
SELECT ARRAY_POSITIONS(ARRAY('red', 'green'), NULL, FALSE);
 array_positions 
-----------------
 
(1 row)

-- same as null_match = FALSE
SET default_array_search_null_handling to FALSE;

-- The array contains NULL and a match is found
SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'green');
 array_positions 
-----------------
 [2]
(1 row)

-- The array contains NULL but no match is found
SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'blue');
 array_positions 
-----------------
 
(1 row)
```

## Consulte também
<a name="array_positions-see-also"></a>
+ [Função ARRAY\$1POSITION](array_position.md)
+ [Função ARRAY\$1CONTAINS](array_contains.md)
+ [Função SUBARRAY](r_subarray.md)