PostgreSQL IN klausel

Postgresql In Klausel



PostgreSQL-is on palju klausleid, mida saate kasutada. IN-klausel on üks neist klauslitest ja sellel on palju eeliseid, kui mõistate, kuidas seda kasutada, eriti kombineerituna WHERE-klausliga. IN-klausel töötab peamiselt koos SELECT-lausega, et filtreerida, kuidas soovite päringut täita. Täites kontrollib IN-klausel määratud loendit, et näha, kas see vastab kriteeriumidele, ja väljastab sobivad väärtused.

PostgreSQL IN klausliga töötamise mõistmine

PostgreSQL-is kasutate klauslit IN koos WHERE-klausliga väljundi filtreerimiseks, kontrollides väärtuste loendit, ja tulemuseks on Boole'i ​​väärtus.

Siin on kasutatav süntaks:







väärtus IN (väärtus1, väärtus2, väärtus_n);

Antud süntaks võtab väärtuse ja kontrollib seda väärtustega väärtus1, väärtus2 ja väärtus_n. Seejärel tagastab see vaste olemasolu korral Boole'i. Kontrollitavate väärtuste loend võib olla mis tahes literaalset tüüpi, sealhulgas stringid ja täisarvud. Lisaks saate luua alampäringu, näiteks SELECT-lause.



Arutleme erinevate PostgreSQL IN-i operaatori kasutamise viiside üle.



1. Töötamine alampäringuga

Nagu varem mainisime, võib kontrollitav väärtus olla alampäring, mis eraldab väärtused päringulause, näiteks SELECT, abil. Nii saate teha päringu tabelist, et kontrollida antud veeru väärtusi. Kasutame oma näite jaoks järgmist tabelit:





Oletame, et tahame kontrollida kõiki kliente, kelle 'order_id' võib olla mis tahes päringu jaotises määratud väärtus. Lisame oma avalduse esimese osana sihtväärtuse ja seejärel kasutame päringu loomiseks klauslit WHERE koos klausliga IN.



Meie päring kuvatakse järgmiselt.

PostgreSQL kontrollib tabelis 'kliendid' veergu 'order_id' ja tagastab kõik kirjed, mille 'order_id' vastab mõnele sulgudes määratud kirjele.

Esmalt kasutasime väärtuste täisarvulist loendit. Saame ka stringide vastu kontrollida. Pange tähele, et kui kõik teie määratud stringid ei vasta sihtväärtusele, ei tagastata midagi. Järgmine näide sisaldab mõningaid stringe, mida meie tabelis ei ole. Sellised stringid jäetakse vahele ja ainult vastavad stringid kuvatakse järgmises väljundis:

2. IN(SELECT) kasutamine

Mõnikord ei pruugi väärtuste loendi käsitsi määramine toimida. Saate kasutada SELECT-lauset, et tuua tabelist väärtuste loend ja kasutada neid sihtväärtuse võrdlemiseks. Lisades oma andmebaasi järgmise tabeli, saame alampäringu tegemiseks kombineerida selle eelmise “kliendid” tabeliga:

Oletame, et tahame kuvada tabelist „tellimused” olevaid kirjeid ainult siis, kui sihtväärtus (order_id) on tabelis „kliendid”. Siin on veerg „customers.order_id” meie väärtuste loend ja me võrdleme selle väärtusi veerus „orders.order_id” olevate väärtustega.

Sel juhul vastab otsingule ainult kolm kirjet ja see on see, mida saame oma IN(SELECT) PostgreSQL-i klausli väljundina.

3. NOT IN PostgreSQL-i klausliga töötamine

Eelmist käsku kasutades saame kuvada muud väärtused, mis sihtväärtusele ei vasta. Selleks teeme vastupidiselt sellele, mida teeb klausel IN. Seetõttu eitame me käsu olla NOT IN.

Oma uue käsu kirjutame järgmiselt.

Pange tähele, et saame erineva väljundi kui näites 2. Selle põhjuseks on asjaolu, et me töötame klausli IN asemel NOT IN-iga.

Ideaalis saate lisada NOT alati, kui soovite eitada PostgreSQL IN klausliga saadud tulemusi. Rakendusi on lõputult. Kui soovite väärtusi kontrollida ja näha, et need ühtivad kiiresti, on IN-klausel teie parim sõber.

Järeldus

IN-klausel töötab koos WHERE-klausliga, et võrrelda sihtväärtust väärtuste loendiga. IN-klausel tagastab tõeväärtuse, mis kinnitab, kas sihtväärtus vastab teie määratud väärtuste loendis. Saate määrata väärtused literaalidena või kasutada alampäringu loomiseks käsku SELECT. Oleme andnud kolm näidet, kuidas saate PostgreSQL IN-i klauslit kasutada. Loodetavasti andis see teile ülevaate PostgreSQL IN klausliga töötamise mõistmisest.