PostgreSQL IN-klausul

Postgresql In Klausul



Der er masser af klausuler, som du kan bruge i PostgreSQL. IN-klausulen er en af ​​disse klausuler, og den har masser af fordele, når du forstår at bruge den, især når den kombineres med WHERE-klausulen. IN-sætningen fungerer hovedsageligt med SELECT-sætningen for at filtrere, hvordan du ønsker, at forespørgslen skal udføres. Når det udføres, kontrollerer IN-sætningen den specificerede liste for at se, om den matcher kriterierne, og udlæser de matchende værdier.

Forstå, hvordan man arbejder med PostgreSQL IN-klausul

I PostgreSQL bruger du IN-sætningen med WHERE-sætningen til at filtrere outputtet ved at kontrollere mod en liste med værdier, og resultatet er en boolsk værdi.

Her er syntaksen, der skal bruges:







værdi IN (værdi1, værdi2, værdi_n);

Den givne syntaks tager værdien og kontrollerer den mod værdi1, værdi2 og værdi_n. Det returnerer derefter en boolesk, hvis der er et match. Listen over værdier, der skal kontrolleres i forhold til, kan være af enhver bogstavelig type, inklusive strenge og heltal. Desuden kan du oprette en underforespørgsel, såsom en SELECT-sætning.



Lad os diskutere de forskellige måder at bruge PostgreSQL IN-operatoren på.



1. Arbejde med en underforespørgsel

Som vi nævnte tidligere, kan værdien, der skal kontrolleres, være en underforespørgsel, der uddrager værdierne ved hjælp af en forespørgselssætning såsom SELECT. På denne måde kan du forespørge en tabel for at kontrollere værdierne for en given kolonne. Lad os bruge følgende tabel til vores eksempel:





Antag, at vi vil kontrollere alle de kunder, hvis 'ordre_id' kunne være en hvilken som helst af de værdier, der er angivet i forespørgselsafsnittet. Vi tilføjer målværdien som den første del af vores erklæring og bruger derefter WHERE-sætningen med IN-sætningen til at oprette forespørgslen.



Sådan ser vores forespørgsel ud:

PostgreSQL kontrollerer kolonnen 'order_id' i 'kunder'-tabellen og returnerer alle de poster, hvis 'order_id' matcher nogen af ​​dem, vi har angivet i parentes.

I første omgang brugte vi et tilfælde af en heltalsliste med værdier. Vi kan også tjekke mod strengene. Bemærk, at hvis alle de strenge, du angiver, ikke matcher målværdien, returneres intet. Følgende eksempel indeholder nogle strenge, som ikke er til stede i vores tabel. Sådanne strenge vil blive sprunget over, og kun de matchende strenge vil blive vist i følgende output:

2. Arbejde med IN(SELECT)

Nogle gange virker det muligvis ikke manuelt at angive værdilisten. Du kan vælge at bruge en SELECT-sætning til at hente en liste over værdier fra din tabel og bruge dem til at kontrollere målværdien. Ved at tilføje følgende tabel til vores database, kan vi kombinere den med den tidligere 'kunder'-tabel for at lave vores underforespørgsel:

Lad os sige, at vi kun ønsker at vise posterne fra 'ordrer'-tabellen, hvis målværdien (ordre_id) er i 'kunder'-tabellen. Her er kolonnen 'customers.order_id' vores liste over værdier, og vi kontrollerer dens værdier mod dem i kolonnen 'orders.order_id'.

I dette tilfælde matcher kun tre poster søgningen, og det er det, vi får som output for vores IN(SELECT) PostgreSQL-klausul.

3. Arbejde med NOT IN PostgreSQL-klausulen

Ved at bruge den forrige kommando kan vi vælge at vise de andre værdier, der ikke matcher målværdien. For det gør vi det modsatte af, hvad IN-klausulen gør. Derfor afviser vi kommandoen om at være IKKE IN.

Sådan skriver vi vores nye kommando:

Bemærk, at vi får et andet output end dem, vi fik i eksempel 2. Det er fordi vi arbejder med NOT IN i stedet for IN-sætningen.

Ideelt set kan du tilføje NOT, når du vil afvise de resultater, du får med PostgreSQL IN-klausulen. Ansøgningerne er uendelige. Når du vil tjekke værdierne og se dem, der matcher hurtigt, er IN-klausulen din bedste ven.

Konklusion

IN-sætningen arbejder med WHERE-sætningen for at kontrollere en målværdi mod en liste med værdier. IN-sætningen returnerer en boolesk værdi, som bekræfter, om målværdien matcher den liste over værdier, du har angivet. Du kan angive værdierne som bogstaver eller bruge SELECT-sætningen til at oprette en underforespørgsel, der skal bruges. Vi har givet tre eksempler på, hvordan du kan bruge PostgreSQL IN-klausulen. Forhåbentlig gav det dig indsigt i at forstå, hvordan du arbejder med PostgreSQL IN-klausulen.