SQL Server: Come fare ricerche CASE SENSITIVE
L'articolo di ieri è stato sicuramente intenso (Database corrotti, recupero tramite DBCC WRITEPAGES) per cui oggi sarò molto più breve. Promesso!
Vi farò vedere come eseguire una ricerca case sentitive anche se la collate impostata sul database non lo è.
Ricerche case sensitive
Supponiamo ora di avere una tabella "elenco" dentro la quale sono memorizzati una serie di nomi, come questa sotto:
Ora, il nostro database non è case sensitive per cui una interrogazione come questa:
SELECT * FROM ELENCO WHERE CODICE = 'LUCA'
ritornerà sempre entrambi i record.
Ma se volessimo restituito solamente il codice dove LUCA è scritto solo in minuscolo?
Come fare?
Bhe, il trucco è semplice.
Avete presente quando abbiamo parlato nei giorni scorsi di COLLATE? (fai click qui:Errore Messaggio 468: Non è possibile risolvere il conflitto tra le regole di confronto "AAAA" e "BBBB" nell'operazione equal to. )
Avevamo accennato al fatto che è la COLLATE a stabilire se la nostra colonna è CASE SENSITIVE oppure no.
Ecco il trucco è proprio questo:
Nella WHERE che andremo a scrivere andremo a specificare una COLLATE che sia CASE SENSITIVE.
Scriviamo ad esempio:
SELECT * FROM ELENCO WHERE CODICE COLLATE SQL_Latin1_General_CP1_CS_AS = 'luca'
Eseguitela ed ecco il risultato..
Per oggi è tutto, ci vediamo presto..
P.S. Buon ferragosto!
Comments
Post a Comment