Todos os produtos
Search
Central de documentação

MaxCompute:SLICE

Última atualização: Sep 22, 2026

Copia os elementos de um array a partir da posição start, considerando um length específico, e retorna esses elementos como um novo array.

Sintaxe

array<T> slice(array<T> <a>, <start>, <length>)

Parâmetros

  • a: obrigatório. Especifica um array. T em array<T> especifica o tipo de dados dos elementos no array. Os elementos podem ser de qualquer tipo de dados.

  • start: obrigatório. Especifica a posição em que a função começa a copiar elementos da esquerda para a direita. O menor valor positivo permitido para esse parâmetro é 1. Se necessário, defina o parâmetro start com um valor negativo. Nesse caso, a posição inicial é contada a partir do fim do array, mas os elementos ainda são copiados da esquerda para a direita.

  • length: obrigatório. Número de elementos no array retornado. O valor deve ser maior ou igual a 0. Se o valor for maior que o comprimento do array de entrada, a função retornará um novo array composto pelos elementos da posição start até o fim do array de entrada.

Valor de retorno

Retorna um valor do tipo ARRAY.

Exemplos

  • Exemplo 1: copia os elementos em array(10, 20, 20, null, null, 30) a partir da posição 1, com comprimento 3. Instrução de exemplo:

    -- The return value is [10, 20, 20]. 
    select slice(array(10, 20, 20, null, null, 30), 1, 3);
  • Exemplo 2: copia os elementos em array(10, 20, 20, null, null, 30) a partir da posição -2, com comprimento 2. Instrução de exemplo:

    -- The return value is [null, 30]. 
    select slice(array(10, 20, 20, null, null, 30), -2, 2);  
  • Exemplo 3: copia os elementos em array(10, 20, 20, null, null, 30) a partir da posição 3, com comprimento 10. Instrução de exemplo:

    -- The return value is [20, null, null, 30]. 
    select slice(array(10, 20, 20, null, null, 30), 3, 10); 
  • Exemplo 4: copia os elementos em array(10, 20, 20, null, null, 30) a partir da posição 3, com comprimento 0. Instrução de exemplo:

    -- The return value is []. 
    select slice(array(10, 20, 20, null, null, 30), 3, 0);

Funções relacionadas

SLICE é uma função de tipo complexo. Para obter mais informações sobre as funções usadas para processar dados de tipos de dados complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.