Clauza IN PostgreSQL

Clauza In Postgresql



Există o mulțime de clauze pe care le puteți utiliza în PostgreSQL. Clauza IN este una dintre aceste clauze și are o mulțime de beneficii atunci când înțelegeți cum să o utilizați, mai ales atunci când este combinată cu clauza WHERE. Clauza IN funcționează în principal cu instrucțiunea SELECT pentru a filtra modul în care doriți să se execute interogarea. Când este executată, clauza IN verifică lista specificată pentru a vedea dacă se potrivește cu criteriile și emite valorile potrivite.

Înțelegerea modului de lucru cu Clauza IN PostgreSQL

În PostgreSQL, utilizați clauza IN cu clauza WHERE pentru a filtra rezultatul verificând o listă de valori, iar rezultatul este o valoare booleană.

Iată sintaxa de utilizat:







valoare IN (valoare1, valoare2, valoare_n);

Sintaxa dată ia valoarea și o verifică cu valoarea 1, valoarea 2 și valoarea_n. Apoi returnează un boolean dacă există o potrivire. Lista de valori pe care trebuie să le verificați poate fi de orice tip literal, inclusiv șiruri de caractere și numere întregi. În plus, puteți crea o subinterogare, cum ar fi o instrucțiune SELECT.



Să discutăm despre diferitele moduri de a folosi operatorul PostgreSQL IN.



1. Lucrul cu o subinterogare

După cum am menționat mai devreme, valoarea cu care trebuie verificată poate fi o subinterogare care extrage valorile folosind o instrucțiune de interogare precum SELECT. În acest fel, puteți interoga un tabel pentru a verifica valorile unei anumite coloane. Să folosim următorul tabel pentru exemplul nostru:





Să presupunem că vrem să verificăm toți clienții al căror „order_id” ar putea fi oricare dintre valorile specificate în secțiunea de interogare. Adăugăm valoarea țintă ca primă parte a instrucțiunii noastre și apoi folosim clauza WHERE cu clauza IN pentru a crea interogarea.



Iată cum apare interogarea noastră:

PostgreSQL verifică coloana „order_id” din tabelul „clienți” și returnează toate înregistrările al căror „order_id” se potrivește cu oricare dintre cele pe care le-am specificat în paranteze.

În primul rând, am folosit un caz al unei liste întregi de valori. Putem verifica, de asemenea, împotriva șirurilor. Rețineți că, dacă toate șirurile pe care le specificați nu se potrivesc cu valoarea țintă, nu se returnează nimic. Următorul exemplu conține câteva șiruri care nu sunt prezente în tabelul nostru. Astfel de șiruri vor fi omise și numai acele șiruri care se potrivesc vor fi afișate în următoarea ieșire:

2. Lucrul cu IN(SELECT)

Uneori, specificarea manuală a listei de valori poate să nu funcționeze. Puteți alege să utilizați o instrucțiune SELECT pentru a prelua o listă de valori din tabelul dvs. și să le utilizați pentru a verifica valoarea țintă. Adăugând următorul tabel la baza noastră de date, îl putem combina cu tabelul „clienți” anterior pentru a face subinterogarea noastră:

Să presupunem că vrem să afișăm înregistrările din tabelul „comenzi” doar dacă valoarea țintă (id-comandă) este în tabelul „clienți”. Aici, coloana „customers.order_id” este lista noastră de valori și le verificăm cu cele din coloana „orders.order_id”.

În acest caz, doar trei intrări se potrivesc cu căutarea și asta este ceea ce obținem ca rezultat pentru clauza noastră IN(SELECT) PostgreSQL.

3. Lucrul cu clauza NOT IN PostgreSQL

Folosind comanda anterioară, putem alege să afișam celelalte valori care nu se potrivesc cu valoarea țintă. Pentru asta, facem opusul a ceea ce face clauza IN. Prin urmare, anulăm comanda de a fi NOT IN.

Iată cum scriem noua noastră comandă:

Observați că obținem o ieșire diferită de cele pe care le-am obținut în exemplul 2. Asta pentru că lucrăm cu NOT IN în loc de clauza IN.

În mod ideal, puteți adăuga NOT oricând doriți să anulați rezultatele pe care le obțineți cu clauza PostgreSQL IN. Aplicațiile sunt nesfârșite. Când doriți să verificați valorile și să vedeți cele care se potrivesc rapid, clauza IN este cel mai bun prieten al tău.

Concluzie

Clauza IN funcționează cu clauza WHERE pentru a verifica o valoare țintă cu o listă de valori. Clauza IN returnează un boolean care confirmă dacă valoarea țintă are o potrivire în lista de valori pe care ați specificat-o. Puteți specifica valorile ca literale sau puteți utiliza instrucțiunea SELECT pentru a crea o subinterogare de utilizat. Am oferit trei exemple despre cum puteți utiliza clauza PostgreSQL IN. Sperăm că asta v-a oferit informații despre înțelegerea modului de lucru cu clauza PostgreSQL IN.