Como faço uma pesquisa com diferenciação de maiúsculas e minúsculas usando LIKE?
Eu estou tentando encontrar registros que contêm uma seqüência de 6 ou mais caracteres alfanuméricos em maiúsculas. Alguns exemplos:
PENDING 3RDPARTY CODE27
Eu estou usando a seguinte declaração:
SELECT Details
FROM MyTable
WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
Isso está retornando todos os registros que contêm qualquer palavra de 6 ou mais letras, independentemente do caso.
Eu adicionei umCOLLATE
declaração:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
Isso não muda nada. Ele ainda retorna registros com uma palavra de 6 ou mais letras, independentemente do caso.
Apenas como teste, tentei:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%';
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
Ambos funcionaram, retornando registros contendo "pendentes" e "PENDENTES" respectivamente. Então, a questão parece peloLIKE
correspondência de padrões de claus.
O que posso fazer para realizar essa pesquisa com diferenciação de maiúsculas e minúsculas?