PostgreSQL IN-klausul

Postgresql In Klausul



Det er mange klausuler du kan bruke i PostgreSQL. IN-klausulen er en av disse klausulene, og den har mange fordeler når du forstår hvordan du bruker den, spesielt når den kombineres med WHERE-klausulen. IN-leddet fungerer hovedsakelig med SELECT-setningen for å filtrere hvordan du vil at spørringen skal utføres. Når den utføres, sjekker IN-klausulen den spesifiserte listen for å se om den samsvarer med kriteriene og gir ut samsvarende verdier.

Forstå hvordan du jobber med PostgreSQL IN-klausul

I PostgreSQL bruker du IN-leddet med WHERE-leddet for å filtrere utdataene ved å sjekke mot en liste med verdier, og resultatet er en boolsk verdi.

Her er syntaksen som skal brukes:







verdi IN (verdi1, verdi2, verdi_n);

Den gitte syntaksen tar verdien og sjekker den mot verdi1, verdi2 og verdi_n. Den returnerer deretter en boolsk hvis det er en match. Listen over verdier å sjekke mot kan være av hvilken som helst bokstavelig type, inkludert strenger og heltall. Dessuten kan du opprette en underspørring, for eksempel en SELECT-setning.



La oss diskutere de forskjellige måtene å bruke PostgreSQL IN-operatøren på.



1. Arbeide med en underspørring

Som vi nevnte tidligere, kan verdien å sjekke mot være en underspørring som trekker ut verdiene ved å bruke en spørringssetning som SELECT. På denne måten kan du spørre en tabell for å sjekke verdiene til en gitt kolonne. La oss bruke følgende tabell for vårt eksempel:





Anta at vi ønsker å sjekke alle kundene hvis 'ordre_id' kan være en av verdiene som er spesifisert i spørringsdelen. Vi legger til målverdien som den første delen av setningen vår og bruker deretter WHERE-leddet med IN-leddet for å opprette spørringen.



Slik ser søket vårt ut:

PostgreSQL sjekker «order_id»-kolonnen i «customers»-tabellen og returnerer alle postene hvis «order_id» samsvarer med noen av de vi spesifiserte i parentes.

For det første brukte vi et tilfelle av en heltallsliste med verdier. Vi kan også sjekke mot strengene. Merk at hvis alle strengene du angir ikke samsvarer med målverdien, returneres ingenting. Følgende eksempel inneholder noen strenger som ikke finnes i tabellen vår. Slike strenger vil bli hoppet over, og bare de samsvarende strengene vil vises i følgende utdata:

2. Arbeide med IN(SELECT)

Noen ganger kan det hende at det ikke fungerer manuelt å spesifisere listen over verdier. Du kan velge å bruke en SELECT-setning for å hente en liste over verdier fra tabellen og bruke dem til å kontrollere mot målverdien. Ved å legge til følgende tabell i databasen vår, kan vi kombinere den med den forrige 'kunder'-tabellen for å lage vår underspørring:

La oss si at vi bare vil vise postene fra 'ordre'-tabellen hvis målverdien (order_id) er i 'kunder'-tabellen. Her er 'customers.order_id'-kolonnen vår liste over verdier, og vi sjekker verdiene mot verdiene i kolonnen 'orders.order_id'.

For dette tilfellet er det bare tre oppføringer som samsvarer med søket, og det er det vi får som utdata for vår IN(SELECT) PostgreSQL-klausul.

3. Arbeide med NOT IN PostgreSQL-klausulen

Ved å bruke den forrige kommandoen kan vi velge å vise de andre verdiene som ikke samsvarer med målverdien. For det gjør vi det motsatte av hva IN-klausulen gjør. Derfor nekter vi kommandoen om å være IKKE IN.

Slik skriver vi vår nye kommando:

Legg merke til at vi får en annen utgang enn de vi fikk i eksempel 2. Det er fordi vi jobber med NOT IN i stedet for IN-klausulen.

Ideelt sett kan du legge til NOT når du vil nekte resultatene du får med PostgreSQL IN-klausulen. Søknadene er uendelige. Når du vil sjekke verdiene og se at de samsvarer raskt, er IN-klausulen din beste venn.

Konklusjon

IN-leddet fungerer med WHERE-leddet for å kontrollere en målverdi mot en liste med verdier. IN-leddet returnerer en boolsk som bekrefter om målverdien har samsvar i listen over verdier du spesifiserte. Du kan spesifisere verdiene som bokstaver eller bruke SELECT-setningen til å lage en underspørring som skal brukes. Vi har gitt tre eksempler på hvordan du kan bruke PostgreSQL IN-klausulen. Forhåpentligvis ga det deg innsikt i hvordan du kan jobbe med PostgreSQL IN-klausulen.