Sto cercando di trovare i record che contengono una stringa di 6 o più caratteri alfanumerici in maiuscolo. Alcuni esempi:Come si esegue una ricerca con distinzione tra maiuscole e minuscole utilizzando LIKE?
PENDING 3RDPARTY CODE27
sto usando la seguente dichiarazione:
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]%';
Questo sta tornando tutti i record che contengono qualsiasi parola 6-o-più-lettera, a prescindere dal caso.
Ho una dichiarazione COLLATE
:
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]%';
Questo non cambia nulla. Restituisce ancora i record con una parola di 6 o più lettere, indipendentemente dal caso.
Proprio come un test, ho provato:
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%';
Entrambi questi lavorato, tornando i record contenenti "in sospeso" e "in sospeso", rispettivamente. Quindi il problema sembra dal modello di corrispondenza del modello LIKE
.
Cosa posso fare per eseguire questa ricerca con distinzione tra maiuscole e minuscole?
provare a utilizzare COLLARE Latin1_General_BIN –
Perfetto! Vuoi fare una risposta? –
Perché? Per ottenere alcuni punti. Mi piace la soddisfazione sapere che ho aiutato. –