UPPER e LOWER nel linguaggio SQL
Il linguaggio SQL è case sensitive. Utilizzando l'interrogazione SELECT potremmo incorrere in problemi se non specifichiamo correttamente le minuscole e le maiuscole del dato che stiamo cercando. Ad esempio, prendiamo in considerazione un database con due clienti, uno con cognome "Rossi" e l'altro con tutte le lettere minuscole "rossi". Il cognome è lo stesso ma il dato è differente.
Scrivendo la seguente query:
SELECT clienteFROM fatturazione WHERE cliente = 'Rossi';quest'ultima visualizzerà soltanto il cliente con cognome uguale a "Rossi" escludendo l'altro.
Per consentire la visualizzazione di entrambi i record dovremo operare delle accortezze all'interno della selezione utilizzando le
funzioni LOWER e UPPER. Queste due funzioni Sql trasformano il dato analizzato in lettere minuscole o maiuscole prima di confrontarlo con la chiave di ricerca. Proviamo a riscrivere la query precedente trasformando il campo cliente in lettere minuscole:
SELECT clienteFROM fatturazione WHERE LOWER(cliente) = 'rossi';Il risultato della query è una lista completa dei due clienti, sia del cliente "Rossi" che del secondo cliente "rossi" precedentemente escluso. La query ha trasformato dapprima il contenuto del dato cliente in lettere minuscole e successivamente lo ha confrontato con la chiave di ricerca 'rossi'. Da notare, questa volta la chiave di ricerca è stata scritta in minuscolo per consentire il confronto.
Avremmo ottenuto lo stesso risultato trasformando in lettere maiuscole il dato relativo al cliente.
SELECT cliente
FROM fatturazione
WHERE UPPER(cliente) = 'ROSSI';
La trasformazione in minuscolo non modifica il dato fisico contenuto nel database. In altri termini i due clienti continueranno a essere presenti nella tabella come "Rossi" e "rossi". La trasformazione agisce soltanto all'interno della query.
ecomatrix
scrivi al sito
ecomatrix@gmail.com