A cura di Andrea Silvestri
Pubblicato il 25/12/2000
Vediamo in dettaglio gli operatori di confronto forniti da SQL.
Se volessi estrarre tutti i dipendenti il cui nome inizia con M dovrei usare l’operatore LIKE:
SELECT * FROM impiegati WHERE nome LIKE ‘M%’;
Il segno di percentuale (%) significa che in quella posizione possono esserci zero o piu’ caratteri.
Mentre scrivendo
SELECT * FROM impiegati WHERE nome LIKE ‘MARI_’;
Otterrei tutti i nomi tipo MARIO, MARIA, ma non MARINA, perche’ il segno di underscore (_) significa che in quella posizione deve esserci esattamente un carattere.
Se volessi tutti i dipendenti che lavorano in una delle sedi 10, 20, 30 potrei usare una combinazione di OR oppure l’operatore IN:
SELECT * FROM impiegati WHERE sede IN (10,20,30);
E per estrarre tutti i dipendenti che lavorano nelle sedi comprese tra 15 e 40 posso usare l’operatore BETWEEN
SELECT * FROM impiegati WHERE sede BETWEEN 15 AND 40;
Gli ultimi due operatori funzionano anche con le stringhe e con le date.
All’appello mancano ancora gli operatori di confronto minore (<), maggiore (>), minore uguale (<=), maggiore uguale (>=) e diverso (!= oppure <> oppure ^=) e l’operatore di negazione NOT.
Che posso usare per negarne altri, ad esempio: NOT LIKE, NOT BETWEEN, NOT IN ecc.
In queste due tabelle vediamo riassunti gli operatori di confronto:
| Operatore | Descrizione | Esempio |
| < | minore | eta<18 |
| > | maggiore | eta>18 |
| <= | minore uguale | eta<=18 |
| >= | maggiore uguale | eta>=18 |
| <> o != o ^= | tre modi per identificare il diverso | eta<>18 |
| BETWEEN | compreso in un intervallo | eta between 18 and 21 |
| LIKE | simile a | nome like 'MARI_' |
| IN | compreso in un insieme | eta in (18,21,35) |
| Operatore | Descrizione | Esempio |
| AND | Combina due condizioni, devono essere soddisfatte entrambe | eta>18 and eta<21 |
| OR | Combina due condizioni, basta che una sola sia verificata | eta>18 or eta<21 |
| NOT | Negazione | eta not in (18,21) |
| IS | E' simile al simbolo =, indispensabile per il confronto con NULL | eta is null |