Articles

função PATINDEX do servidor SQL

Resumo: neste tutorial, você aprendeu a usar o servidor SQL PATINDEX() função para encontrar a posição de um padrão em uma string.

SQL Server PATINDEX() overview

The PATINDEX() function returns the position of the first occurrence of a pattern in a string. A sintaxe da função PATINDEX() é a seguinte:

PATINDEX ( '%pattern%' , input_string )
Code language: SQL (Structured Query Language) (sql)

a PATINDEX() a função aceita dois argumentos:

  • pattern é uma expressão de caracteres a ser encontrada. Pode conter caracteres especiais como % e '_' no padrão. Os significados dos caracteres especiais são os mesmos que são usados com o operador LIKE.
  • input_string é uma cadeia de caracteres na qual o padrão a ser pesquisado.

PATINDEX() retorna um número inteiro que especifica a posição da primeira ocorrência de patterninput_string, ou zero se o padrão não foi encontrado. The PATINDEX() function will return NULL if either pattern or input_string is NULL.

Note que o PATINDEX() procura o padrão baseado na colação da entrada. Se você quiser usar uma colação específica, você pode usar a cláusula COLLATE explicitamente.

SQL Server PATINDEX() function examples

Let’s take some examples of using the PATINDEX() function.

A) o SQL Server PATINDEX() exemplo simples

Este exemplo retorna a posição inicial da subseqüência 'ern' na cadeia de caracteres 'SQL Pattern Index':

SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Code language: SQL (Structured Query Language) (sql)

Aqui é a saída:

position-----------9(1 row affected)

B) Utilizando o SQL Server PATINDEX() com vários caracteres universais exemplo

Este exemplo utiliza % e _ caracteres curinga para localizar a posição na qual o padrão 'f' seguido de dois caracteres e 'ction' começa na 'SQL Server String Function' cadeia de caracteres:

SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
Code language: SQL (Structured Query Language) (sql)

o resultado é O seguinte:

Position-----------19(1 row affected)

C) Utilizando o SQL Server PATINDEX função() com a coluna da tabela de exemplo

Este exemplo localiza a posição da primeira ocorrência do padrão 2018 em valores de product_name coluna production.products tabela do banco de dados de exemplo.

SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

a imagem seguinte mostra a saída parcial:

SQL Server PATINDEX Função de Exemplo

neste tutorial, você aprendeu como usar o SQL Server PATINDEX() função para localizar a posição da primeira ocorrência de um padrão em uma seqüência de caracteres.