SQL Server: Come fare ricerche CASE SENSITIVE

Carissimi lettori, ben torrnati!


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 di aver impostato sul nostro database una collate che non รจ case sensitive. Ovvero non รจ sensibile alle maiuscole e minuscole.

Supponiamo ora di avere una tabella "elenco" dentro la quale sono memorizzati una serie di nomi, come questa sotto:


SQL SSMS Query result

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!


Luca Biondi @ SQLServerPerformance blog!

 
 
 
 
 
 
 
 
 

Comments

I Post piรน popolari

Speaking to Sql Server, sniffing the TDS protocol

SQL Server, find text in a Trigger, Stored Procedures, View and Function. Two ways and what ways is better

SQL Server, Avoid that damn Table Spool!