- Categorias:
Funções de cadeia de caracteres e binários (Correspondência/Comparação)
CHARINDEX¶
Procura a primeira ocorrência do primeiro argumento no segundo argumento e, se bem-sucedido, retorna a posição (baseada em 1) do primeiro argumento no segundo argumento.
- Aliases:
-
Observe que a função CHARINDEX não oferece suporte a uma das variações de sintaxe que a função POSITION suporta.
Sintaxe¶
Argumentos¶
Obrigatório:
expr1Uma cadeia de caracteres ou expressão binária representando o valor a ser buscado.
expr2Uma cadeia de caracteres ou expressão binária representando o valor a ser pesquisado.
Opcional:
start_posUm número indicando a posição de onde iniciar a busca (com
1representando o início deexpr2).Padrão:
1
Notas de uso¶
Se algum argumento for NULL, a função retorna NULL.
Se a cadeia de caracteres ou valor binário não for encontrado, a função retorna
0.Se o opcional especificado
start_posestiver além do fim do segundo argumento (a cadeia de caracteres a pesquisar), a função retornará0.Se o primeiro argumento estiver vazio (por exemplo, uma cadeia de caracteres vazia), a função retorna
1.Os tipos de dados dos dois primeiros argumentos devem ser os mesmos; ou ambos devem ser cadeias de caracteres ou ambos devem ser valores binários.
Detalhes do agrupamento¶
Esta função não oferece suporte às seguintes especificações de agrupamento:
pi(não identifica pontuação).cs-ai(diferencia maiúsculas e minúsculas, não identifica acentos).
Exemplos¶
Expressões VARCHAR¶
Encontrar a primeira ocorrência de ‘an’ em ‘banana’:
Encontrar a primeira ocorrência de ‘an’ em ‘banana’ na ou após a posição 3. Esta busca encontra a segunda ocorrência de ‘an’.
Procurar por vários caracteres, incluindo caracteres unicode, em cadeias de caracteres:
Expressões BINARY¶
Observe que como os valores abaixo são representações hexadecimais, um único byte BINARY é representado como dois dígitos hexadecimais.
Neste exemplo, o valor retornado será 3 porque ‘EF’ corresponde ao terceiro byte (o primeiro byte é ‘AB’; o segundo byte é ‘CD’ e o terceiro byte é ‘EF’):
Neste exemplo, não há correspondência. Embora a sequência ‘BC’ pareça estar no valor pesquisado, o ‘B’ é o segundo nibble do primeiro byte, e o ‘C’ é o primeiro nibble do segundo byte; nenhum byte contém realmente ‘BC’, portanto o valor retornado será 0 (não encontrado).