Clausola IN di PostgreSQL

Clausola In Di Postgresql



Ci sono molte clausole che puoi utilizzare in PostgreSQL. La clausola IN è una di queste clausole e presenta numerosi vantaggi quando si capisce come utilizzarla, soprattutto se combinata con la clausola WHERE. La clausola IN funziona principalmente con l'istruzione SELECT per filtrare il modo in cui si desidera che venga eseguita la query. Una volta eseguita, la clausola IN controlla l'elenco specificato per verificare se corrisponde ai criteri e restituisce i valori corrispondenti.

Capire come lavorare con la clausola IN di PostgreSQL

In PostgreSQL, usi la clausola IN con la clausola WHERE per filtrare l'output confrontandolo con un elenco di valori e il risultato è un valore booleano.

Ecco la sintassi da utilizzare:







valore IN (valore1, valore2, valore_n);

La sintassi data prende il valore e lo confronta con valore1, valore2 e valore_n. Quindi restituisce un valore booleano se esiste una corrispondenza. L'elenco dei valori da confrontare può essere di qualsiasi tipo letterale, comprese stringhe e numeri interi. Inoltre, puoi creare una sottoquery come un'istruzione SELECT.



Parliamo dei diversi modi di utilizzare l'operatore PostgreSQL IN.



1. Lavorare con una sottoquery

Come accennato in precedenza, il valore da confrontare può essere una sottoquery che estrae i valori utilizzando un'istruzione di query come SELECT. In questo modo, puoi interrogare una tabella per verificare i valori di una determinata colonna. Usiamo la seguente tabella per il nostro esempio:





Supponiamo di voler controllare tutti i clienti il ​​cui 'order_id' potrebbe essere uno qualsiasi dei valori specificati nella sezione query. Aggiungiamo il valore target come prima parte della nostra istruzione e quindi utilizziamo la clausola WHERE con la clausola IN per creare la query.



Ecco come appare la nostra query:

PostgreSQL controlla la colonna 'order_id' nella tabella 'customers' e restituisce tutti i record il cui 'order_id' corrisponde a uno qualsiasi di quelli specificati tra parentesi.

Per la prima istanza, abbiamo utilizzato il caso di un elenco di valori interi. Possiamo anche verificare rispetto alle stringhe. Tieni presente che se tutte le stringhe specificate non corrispondono al valore di destinazione, non verrà restituito nulla. L'esempio seguente contiene alcune stringhe che non sono presenti nella nostra tabella. Tali stringhe verranno ignorate e solo quelle corrispondenti verranno visualizzate nel seguente output:

2. Lavorare con IN(SELECT)

A volte, la specifica manuale dell'elenco di valori potrebbe non funzionare. Puoi scegliere di utilizzare un'istruzione SELECT per recuperare un elenco di valori dalla tabella e utilizzarli per verificare il valore di destinazione. Aggiungendo la seguente tabella al nostro database, possiamo combinarla con la precedente tabella “clienti” per creare la nostra sottoquery:

Diciamo che vogliamo visualizzare i record della tabella 'ordini' solo se il valore di destinazione (order_id) si trova nella tabella 'clienti'. Qui, la colonna 'customers.order_id' è il nostro elenco di valori e controlliamo i suoi valori rispetto a quelli nella colonna 'orders.order_id'.

In questo caso, solo tre voci corrispondono alla ricerca ed è ciò che otteniamo come output per la nostra clausola PostgreSQL IN(SELECT).

3. Lavorare con la clausola NOT IN PostgreSQL

Utilizzando il comando precedente, possiamo scegliere di visualizzare gli altri valori che non corrispondono al valore target. Per questo, facciamo l'opposto di ciò che fa la clausola IN. Quindi, neghiamo il comando di NON essere IN.

Ecco come scriviamo il nostro nuovo comando:

Nota che otteniamo un output diverso da quelli ottenuti nell'esempio 2. Questo perché stiamo lavorando con la clausola NOT IN invece che con la clausola IN.

Idealmente, puoi aggiungere NOT ogni volta che desideri negare i risultati ottenuti con la clausola PostgreSQL IN. Le applicazioni sono infinite. Quando vuoi controllare i valori e vedere quelli corrispondenti rapidamente, la clausola IN è la tua migliore amica.

Conclusione

La clausola IN funziona con la clausola WHERE per verificare un valore target rispetto a un elenco di valori. La clausola IN restituisce un valore booleano che conferma se il valore di destinazione ha una corrispondenza nell'elenco di valori specificati. È possibile specificare i valori come valori letterali o utilizzare l'istruzione SELECT per creare una sottoquery da utilizzare. Abbiamo fornito tre esempi su come utilizzare la clausola PostgreSQL IN. Si spera che questo ti abbia dato informazioni su come lavorare con la clausola PostgreSQL IN.