Função POSITION

POSITION é uma função de manipulação de cadeias que manipula todos os tipos de dados (BIT, BLOB e CHARACTER) e retorna a posição de uma cadeia dentro de outra.

SINTAXE

POSITION retorna um inteiro que fornece a posição de uma cadeia (SearchExpression) em uma segunda cadeia (SourceExpression). Uma posição de um corresponde ao primeiro caractere da cadeia de origem.

Se estiver presente, a cláusula FROM fornece a posição dentro da cadeia de procura na qual a procura se inicia. Na ausência de uma cláusula FROM, a cadeia de origem é pesquisada a partir do início.

Se estiver presente, a cláusula REPEAT fornece uma contagem de repetições, informando a posição retornada como a da n-ésima ocorrência da cadeia de procura dentro da cadeia de origem. Se a contagem de repetição for negativa, a cadeia de origem será pesquisada a partir do final.

Na ausência de uma cláusula REPEAT, considera-se uma contagem de repetições igual a +1; isto é, retorna-se a posição da primeira ocorrência, a partir do início da procura. Se a cadeia de pesquisa tiver um comprimento zero, o resultado será um.

Se a cadeia de procura não puder ser encontrada, o resultado será zero: se a cláusula FROM estiver presente, isso se aplica somente à seção da cadeia de origem que está sendo pesquisada; se a cláusula REPEAT estiver presente, isso se aplica somente se houver ocorrências insuficientes da cadeia.

Se qualquer parâmetro for NULL, o resultado será NULL.

As cadeias de procura e de origem podem ser dos tipos de dados CHARACTER, BLOB ou BIT, mas devem ser do mesmo tipo.

Por exemplo:
         POSITION('Village'
IN 'Hursley Village');   retorna 9
         POSITION('Town' IN 'Hursley Village');   retorna 0

         POSITION ('B' IN 'ABCABCABCABCABC'); -> retorna 2
         POSITION('D' IN 'ABCABCABCABCABC');                   -> retorna 0
         POSITION('A' IN 'ABCABCABCABCABC' FROM 4);            -> retorna 4
                 POSITION('C' IN 'ABCABCABCABCABC' FROM 2);            -> retorna 3


         POSITION('B' IN 'ABCABCABCABCABC' REPEAT 2);          -> retorna 5
                 POSITION('C' IN 'ABCABCABCABCABC' REPEAT 4);          -> retorna 12


         POSITION('A' IN 'ABCABCABCABCABC' FROM 4 REPEAT 2);   -> retorna 7
                 POSITION('AB' IN 'ABCABCABCABCABC' FROM 2 REPEAT 3);  -> retorna 10


         POSITION('A' IN 'ABCABCABCABCABC' REPEAT -2);         -> retorna 10
                 POSITION ('BC' IN 'ABCABCABCABCABC' FROM 2 REPEAT -3); -> retorna 5
Conceitos relacionados
Visão Geral do ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Selecionando um Subcampo de um Campo Maior
Referências relacionadas
Diagramas de Sintaxe: Tipos Disponíveis
Funções de Manipulação de Cadeia ESQL
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak05240_