PostgreSQL IN klauzula

Postgresql In Klauzula



Postoji mnogo klauzula koje možete koristiti u PostgreSQL-u. IN klauzula je jedna od tih klauzula i ima mnogo prednosti kada razumijete kako je koristiti, posebno u kombinaciji s WHERE klauzulom. IN klauzula radi uglavnom s SELECT naredbom za filtriranje kako želite da se upit izvrši. Kada se izvrši, klauzula IN provjerava navedeni popis da vidi odgovara li kriterijima i ispisuje odgovarajuće vrijednosti.

Razumijevanje rada s PostgreSQL IN klauzulom

U PostgreSQL-u koristite klauzulu IN s klauzulom WHERE za filtriranje izlaza provjerom prema popisu vrijednosti, a rezultat je Booleova vrijednost.

Evo sintakse koju treba koristiti:







vrijednost IN (vrijednost1, vrijednost2, vrijednost_n);

Dana sintaksa preuzima vrijednost i uspoređuje je s vrijednostima1, vrijednost2 i vrijednost_n. Zatim vraća Booleovu vrijednost ako postoji podudaranje. Popis vrijednosti za provjeru može biti bilo koje literalne vrste, uključujući nizove i cijele brojeve. Osim toga, možete kreirati podupit kao što je naredba SELECT.



Raspravljajmo o različitim načinima korištenja PostgreSQL IN operatora.



1. Rad s podupitom

Kao što smo ranije spomenuli, vrijednost za provjeru može biti podupit koji izvlači vrijednosti pomoću izraza upita kao što je SELECT. Na ovaj način možete postaviti upit tablici da provjerite vrijednosti određenog stupca. Upotrijebimo sljedeću tablicu za naš primjer:





Pretpostavimo da želimo provjeriti sve kupce čiji bi 'order_id' mogao biti bilo koja od vrijednosti navedenih u odjeljku upita. Dodajemo ciljnu vrijednost kao prvi dio naše izjave, a zatim koristimo WHERE klauzulu s IN klauzulom za kreiranje upita.



Evo kako naš upit izgleda:

PostgreSQL provjerava stupac “order_id” u tablici “customers” i vraća sve zapise čiji “order_id” odgovara bilo kojem od onih koje smo naveli u zagradama.

Za prvi smo primjer koristili slučaj cjelobrojnog popisa vrijednosti. Također možemo provjeriti prema nizovima. Imajte na umu da ako svi nizovi koje navedete ne odgovaraju ciljanoj vrijednosti, ništa se ne vraća. Sljedeći primjer sadrži neke nizove koji nisu prisutni u našoj tablici. Takvi nizovi bit će preskočeni i samo oni odgovarajući nizovi bit će prikazani u sljedećem izlazu:

2. Rad s IN(SELECT)

Ponekad ručno navođenje popisa vrijednosti možda neće funkcionirati. Možete odabrati korištenje naredbe SELECT za dohvaćanje popisa vrijednosti iz svoje tablice i njihovu upotrebu za provjeru ciljane vrijednosti. Dodavanjem sljedeće tablice u našu bazu podataka, možemo je kombinirati s prethodnom tablicom 'kupci' kako bismo napravili naš podupit:

Recimo da samo želimo prikazati zapise iz tablice 'narudžbe' ako je ciljna vrijednost (order_id) u tablici 'kupci'. Ovdje je stupac “customers.order_id” naš popis vrijednosti i provjeravamo njegove vrijednosti u odnosu na one u stupcu “orders.order_id”.

U ovom slučaju, samo tri unosa odgovaraju pretraživanju i to je ono što dobivamo kao izlaz za našu IN(SELECT) PostgreSQL klauzulu.

3. Rad s NOT IN PostgreSQL klauzulom

Koristeći prethodnu naredbu, možemo odabrati prikaz ostalih vrijednosti koje ne odgovaraju ciljnoj vrijednosti. Za to radimo suprotno od onoga što radi klauzula IN. Stoga negiramo naredbu NOT IN.

Evo kako pišemo našu novu naredbu:

Primijetite da dobivamo drugačiji izlaz od onih koje smo dobili u primjeru 2. To je zato što radimo s NOT IN umjesto IN klauzulom.

U idealnom slučaju, možete dodati NOT kad god želite poništiti rezultate koje dobijete s klauzulom PostgreSQL IN. Prijave su beskrajne. Kada želite provjeriti vrijednosti i vidjeti one koje se brzo podudaraju, klauzula IN je vaš najbolji prijatelj.

Zaključak

IN klauzula radi s WHERE klauzulom za provjeru ciljane vrijednosti u odnosu na popis vrijednosti. IN klauzula vraća Booleovu vrijednost koja potvrđuje ima li ciljana vrijednost podudaranje na popisu vrijednosti koje ste naveli. Možete navesti vrijednosti kao literale ili upotrijebiti naredbu SELECT za stvaranje podupita za korištenje. Dali smo tri primjera kako možete koristiti klauzulu PostgreSQL IN. Nadajmo se da vam je to dalo uvid u razumijevanje rada s PostgreSQL IN klauzulom.