PostgreSQL IN, non IN con esempi
Cosa è PostgreSQL In ?
L'operatore IN viene utilizzato in una clausola WHERE che consente di verificare se un valore è presente in un elenco di altri valori. In OperaQuesta soluzione aiuta a ridurre la necessità di più condizioni OR nelle istruzioni SELECT, UPDATE, INSERT o DELETE.
Sintassi
L'operatore IN ha la seguente sintassi:
value IN (value_1, value_2, ...)
Il valore è il valore che stai controllando nell'elenco.
Il value_1, value_2... sono i valori della lista.
Se il valore viene trovato nell'elenco, l'operatore restituirà true.
L'elenco può essere un insieme di numeri di stringhe o anche il risultato di output di a Istruzione SELECT come mostrato di seguito:
value IN (SELECT value FROM table-name);
L'istruzione inserita tra parentesi è nota come subquery.
Con carattere
Mostriamo come utilizzare l'operatore IN con valori di carattere.
Considera la seguente tabella:
Dipendenti:
Eseguiamo la seguente query sulla tabella sopra:
SELECT * FROM Employees WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');
Restituisce quanto segue:
Abbiamo un elenco di tre nomi. Stiamo cercando di trovare qualcuno di questi nomi nella colonna nome della tabella Employees. Kate Joel è stata abbinata a uno dei record della tabella e ne sono stati restituiti i dettagli.
Con numerico
Ora vediamo come possiamo utilizzare l'operatore IN con valori numerici.
Considera la tabella dei prezzi riportata di seguito:
Prezzo:
Possiamo eseguire la seguente query sulla tabella:
SELECT * FROM Price WHERE price IN (200, 308, 250, 550);
Questo restituisce quanto segue:
Abbiamo creato un elenco con 4 valori numerici. Stiamo verificando se possiamo abbinare uno qualsiasi di questi valori con i valori contenuti nella colonna prezzo della tabella Prezzo. Sono stati abbinati due valori e sono stati restituiti i relativi dettagli.
Utilizzo dell'operatore NOT
L'operatore IN può essere utilizzato insieme all'operatore NOT. Restituisce i valori che non si trovano nella colonna specificata. Utilizzeremo la tabella dei prezzi per dimostrarlo.
SELECT * FROM Price WHERE price NOT IN (200, 400, 190, 230);
Verrà restituito quanto segue:
Abbiamo creato un elenco con 4 valori numerici. Stiamo controllando la colonna prezzo della tabella Prezzo per valori che non fanno parte dell'elenco. Due valori, 250 e 300, non sono stati trovati. Quindi i loro dettagli sono stati restituiti.
Utilizzando pgAdmin
Vediamo ora come si possono eseguire le azioni utilizzando pgAdmin.
Con carattere
Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT * FROM Employees WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
Con numerico
Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT * FROM Price WHERE price IN (200, 308, 250, 550);
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
Utilizzo dell'operatore NOT
Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
SELECT * FROM Price WHERE price NOT IN (200, 400, 190, 230);
Passo 4) Fare clic sul pulsante Esegui.
Dovrebbe restituire quanto segue:
Sintesi
- L'operatore IN viene utilizzato con l'operatore WHERE. Permette di verificare se un particolare valore è presente in una tabella specifica.
- L'operatore IN aiuta a ridurre la necessità di più operatori OR nelle istruzioni SELECT, UPDATE, INSERT o DELETE.
- Quando si crea un elenco di caratteri per verificare la presenza di un valore, ciascun valore nell'elenco deve essere racchiuso tra virgolette singole.
- L'operatore IN può essere utilizzato anche con valori numerici.
- Quando l'operatore IN viene utilizzato insieme all'operatore NOT, restituisce tutti i valori che non si trovano nella colonna specificata.
Scarica il database utilizzato in questo tutorial