IN e NOT IN
L'operatore IN
restituisce TRUE
se il valore dell'espressione a sinistra esiste nella lista dei valori specificati alla sua destra. Al contrario, NOT IN
restituisce TRUE
se il valore dell'espressione a sinistra non esiste nella lista dei valori alla sua destra.
Impiegati del dipartimento con ID uguale a uno dei valori nella lista (10, 20)
SQL> SELECT last_name AS cognome, department_ID 2 FROM employees 3 WHERE department_id IN (10, 20);
Se usassimo l'operatore NOT IN
con la stessa lista di valori dell'esempio precedente otterremmo tutti gli impiegati che non lavorano nei dipartimenti 10 e 20.
BETWEEN...AND
È utilizzato per restituire i valori compresi in un intervallo specifico di valori. BETWEEN 5 AND 8
, ad esempio, restituisce tutti i valori compresi fra 5 e 8.
Impiegati che guadagnano da 5000 a 6000
SQL> SELECT last_name AS cognome, salary 2 FROM employees 3 WHERE salary BETWEEN 5000 AND 6000;
IS NULL
È utilizzato per trovare i valori NULL
nelle colonne specificate. Questo operatore restituisce TRUE
se la riga della colonna interrogata contiene un valore NULL
.
NOTA: Gli operatori di uguaglianza (=) e disuguaglianza (<>) non funzionano con i valori NULL
.
Impiegati non assegnati ad alcun dipartimento
SQL> SELECT last_name AS cognome, first_name AS nome, department_id 2 FROM employees 3 WHERE department_id IS NULL;
IS NOT NULL
È utilizzato per trovare i valori diversi da NULL
nelle colonne specificate, pertanto restituisce TRUE
se la riga della colonna interrogata non contiene un valore NULL
Possiamo riproporre il precedente esempio sostituendo però IS NULL
con IS NOT NULL
. Otterremo una lista di impiegati da cui è escluso "Grant Kimberly".
LIKE
È un operatore molto utilizzato per eseguire i confronti di somiglianza. È possibile usare caratteri speciali per generalizzare le ricerche.
- Percentuale (
%
) indica qualsiasi carattere e qualsiasi numero di caratteri - Trattino basso (
_
) indica un qualsiasi carattere singolo
Impiegati il cui cognome inizia per le lettere 'Ge'
SQL> SELECT last_name AS cognome, first_name AS nome 2 FROM employees 3 WHERE last_name LIKE 'Ge%';
Ancora un esempio sull'utilizzo di LIKE
e dei caratteri %
e _
.
Il cognome degli impiegati la cui prima lettera è una qualsiasi e la seconda lettera è una 'u'
SQL> SELECT last_name AS cognome 2 FROM employees 3 WHERE last_name LIKE '_u%';