Gabarito: B
As funções CHARINDEX e PATINDEX basicamente fazem a mesma coisa, retornam a posição inicial de um padrão que você especifica. PATINDEX pode usar caracteres curingas, mas a CHARINDEX não.
Ambas as funções usam dois argumentos. Com PATINDEX, você deve incluir sinais de porcentagem antes e depois do teste padrão, a menos que você está procurando o padrão como os primeiros (omita o primeiro%) ou os últimos (omita o último%) caracteres em uma coluna. Para CHARINDEX, o padrão não pode incluir caracteres curinga. O segundo argumento é uma expressão de caracteres, geralmente um nome de coluna.
Como a função CHARINDEX, a função PATINDEX retorna a posição inicial do padrão dentro da sequência que está sendo pesquisada.
Se você tem uma chamada de função PATINDEX assim: select PATINDEX('_B_D%', 'ABCDEF')
Em seguida, o resultado da chamada da função PATINDEX é 1.
% É usado para representar qualquer quantidade de qualquer coisa.
_ É usado para encontrar apenas uma ocorrência de qualquer coisa.
As funções CHARINDEX e PATINDEX basicamente fazem a mesma coisa, retornam a posição inicial de um padrão que você especifica. PATINDEX pode usar caracteres curingas, mas a CHARINDEX não pode.
Ambas as funções usam dois argumentos. Com PATINDEX, você deve incluir sinais de porcentagem antes e depois do teste padrão, a menos que você está procurando o padrão como o primeiro (omita o primeiro%) ou os últimos (omita o último%) caracteres em uma coluna. Para CHARINDEX, o padrão não pode incluir caracteres curinga. O segundo argumento é uma expressão de caracteres, geralmente um nome de coluna.
Exemplo usando CHARINDEX:
SELECT CHARINDEX (‘SQL’, ‘Microsoft SQL Server’)
Esta chamada de função irá retornar a localização da cadeia de caracteres “SQL”, começando, na seqüência de “Microsoft SQL Server”. Neste caso, a função CHARINDEX irá retornar o número 11, que como você pode ver é a posição inicial de “S” em cadeia “Microsoft SQL Server”.
Agora dizer que temos o seguinte comando CHARINDEX:
SELECT CHARINDEX (‘7.0’, ‘Microsoft SQL Server 2000’)
Neste exemplo, a função CHARINDEX retornará zero, uma vez que a cadeia de caracteres “7.0” não pode ser encontrado na seqüência de “Microsoft SQL Server 2012”.
Como funciona o PATINDEX:
Como a função CHARINDEX, a função PATINDEX retorna a posição inicial do padrão dentro da seqüência que está sendo pesquisada. Se você tem uma chamada de função PATINDEX assim: PATINDEX (‘%BC%’, ‘ABCD’)SELECT PATINDEX (‘%BC%’, ‘ABCD’)
Em seguida, o resultado da chamada da função PATINDEX é 2 , O sinal % é um carácter universal (carácter curinga).
Existem quatro tipo de caractere curinga disponível em SQL Server. Temos que usar LIKE ou palavra-chave PATINDEX.
% É usado para representar qualquer coisa antes, depois ou toda string.
[] É usado para procurar caráter único dentro de um intervalo (AZ ou 0-9) ou um único caractere no padrão de correspondência.
[^] É usado para procurar por uma seqüência sem o caráter dado no colchete após ^ símbolo e na posição especificada.
_ (Sublinhado) Usado para encontrar uma string que contenha o texto não levando em consideração o primeiro carácter.
fonte: https://jvilar.wordpress.com/2015/11/22/comparando-charindex-e-patindex/