Klavzula PostgreSQL IN

Klavzula Postgresql In



Obstaja veliko klavzul, ki jih lahko uporabite v PostgreSQL. Klavzula IN je ena od teh klavzul in ima veliko prednosti, če razumete, kako jo uporabljati, zlasti v kombinaciji s klavzulo WHERE. Klavzula IN deluje predvsem s stavkom SELECT, da filtrira, kako želite, da se poizvedba izvede. Ko se izvede, klavzula IN preveri podani seznam, ali se ujema s kriteriji, in izpiše ujemajoče se vrednosti.

Razumevanje dela s klavzulo PostgreSQL IN

V PostgreSQL uporabite klavzulo IN s klavzulo WHERE za filtriranje izhoda s preverjanjem glede na seznam vrednosti, rezultat pa je logična vrednost.

Tukaj je sintaksa za uporabo:







vrednost IN (vrednost1, vrednost2, vrednost_n);

Podana sintaksa vzame vrednost in jo primerja z vrednostjo1, vrednost2 in vrednost_n. Nato vrne logično vrednost, če obstaja ujemanje. Seznam vrednosti za preverjanje je lahko katere koli dobesedne vrste, vključno z nizi in celimi števili. Poleg tega lahko ustvarite podpoizvedbo, kot je stavek SELECT.



Pogovorimo se o različnih načinih uporabe operatorja PostgreSQL IN.



1. Delo s podpoizvedbo

Kot smo že omenili, je lahko vrednost za preverjanje podpoizvedba, ki ekstrahira vrednosti z uporabo stavka poizvedbe, kot je SELECT. Na ta način lahko poizvedujete po tabeli, da preverite vrednosti danega stolpca. Za naš primer uporabimo naslednjo tabelo:





Recimo, da želimo preveriti vse stranke, katerih »order_id« bi lahko bila katera koli vrednost, podana v razdelku poizvedbe. Ciljno vrednost dodamo kot prvi del našega stavka in nato uporabimo stavek WHERE s stavkom IN, da ustvarimo poizvedbo.



Naša poizvedba je videti tako:

PostgreSQL preveri stolpec “order_id” v tabeli “customers” in vrne vse zapise, katerih “order_id” se ujema s katerim koli od tistih, ki smo jih podali v oklepajih.

Za prvi primer smo uporabili primer celega seznama vrednosti. Lahko preverimo tudi glede na strune. Upoštevajte, da če se vsi nizi, ki jih podate, ne ujemajo s ciljno vrednostjo, ni vrnjeno nič. Naslednji primer vsebuje nekaj nizov, ki jih ni v naši tabeli. Takšni nizi bodo preskočeni in samo tisti ujemajoči se nizi bodo prikazani v naslednjem izhodu:

2. Delo z IN(SELECT)

Včasih ročno določanje seznama vrednosti morda ne bo delovalo. Izberete lahko uporabo stavka SELECT za pridobivanje seznama vrednosti iz vaše tabele in njihovo uporabo za preverjanje glede na ciljno vrednost. Če v našo zbirko podatkov dodamo naslednjo tabelo, jo lahko združimo s prejšnjo tabelo »stranke«, da naredimo našo podpoizvedbo:

Recimo, da želimo prikazati samo zapise iz tabele »naročila«, če je ciljna vrednost (order_id) v tabeli »stranke«. Tu je stolpec »customers.order_id« naš seznam vrednosti in njegove vrednosti primerjamo s tistimi v stolpcu »orders.order_id«.

V tem primeru se samo trije vnosi ujemajo z iskanjem in to je tisto, kar dobimo kot rezultat za naš stavek IN(SELECT) PostgreSQL.

3. Delo s klavzulo NOT IN PostgreSQL

S prejšnjim ukazom se lahko odločimo za prikaz drugih vrednosti, ki se ne ujemajo s ciljno vrednostjo. Za to naredimo nasprotno od tega, kar počne klavzula IN. Zato zanikamo ukaz NOT IN.

Tako pišemo naš novi ukaz:

Upoštevajte, da dobimo drugačen izhod od tistih, ki smo jih dobili v primeru 2. To je zato, ker delamo z NOT IN namesto s stavkom IN.

V idealnem primeru lahko dodate NE, kadar koli želite zanikati rezultate, ki jih dobite s klavzulo PostgreSQL IN. Prijav je neskončno. Ko želite preveriti vrednosti in hitro videti tiste, ki se ujemajo, je stavek IN vaš najboljši prijatelj.

Zaključek

Klavzula IN deluje s klavzulo WHERE za preverjanje ciljne vrednosti glede na seznam vrednosti. Klavzula IN vrne logično vrednost, ki potrdi, ali se ciljna vrednost ujema na seznamu vrednosti, ki ste ga podali. Vrednosti lahko podate kot literale ali uporabite stavek SELECT, da ustvarite podpoizvedbo za uporabo. Podali smo tri primere, kako lahko uporabite klavzulo PostgreSQL IN. Upajmo, da vam je to dalo vpogled v razumevanje dela s klavzulo PostgreSQL IN.