Klavzula SQL WHERE IN

Klavzula Sql Where In



V SQL lahko uporabimo klavzulo WHERE IN za filtriranje rezultatov v dani bazi podatkov. Klavzula WHERE IN nam omogoča, da iz dane baze podatkov izberemo vrstice, ki se ujemajo z eno ali več podanimi vrednostmi z danega seznama.

V tej vadnici bomo raziskali stavek WHERE IN, da odkrijemo, kako ga lahko uporabimo za filtriranje rezultatov iz dane tabele ali nabora rezultatov.

Klavzula SQL WHERE IN

Naslednje prikazuje osnovno sintakso stavka WHERE IN v SQL:







IZBERI stolpec1, stolpec2, ...
FROM ime_tabele
WHERE ime_stolpca IN (vrednost1, vrednost2, ...);

Začnemo z osnovnim stavkom »select«, ki mu sledijo stolpci, ki jih želimo vključiti v niz rezultatov.



Nato določimo tabelo, iz katere želimo pridobiti rezultate. Nazadnje določimo pogoj filtra s klavzulo WHERE, ki ji sledi ime stolpca, v katerem želimo filtrirati. Za klavzulo IN določimo seznam vrednosti, ki jih želimo uporabiti za filtriranje.



1. primer: filtrirajte en sam rezultat

Za boljši prikaz uporabe klavzule WHERE IN si poglejmo primer. Razmislite o tabeli »film« iz vzorčne zbirke podatkov Sakila.





Recimo, da želimo pridobiti vse filme z oceno PG ali PG-13. Klavzulo WHERE IN lahko uporabimo na naslednji način:

IZBERITE naslov, leto izdaje, oceno
IZ filma
WHERE ocena IN ('PG');

V tem primeru zagotovimo seznam ene same vrednosti, ki jo želimo pridobiti v stavku IN.



Primer 2: Filtriranje več vrednosti

Določimo lahko tudi več kot eno postavko na seznamu vrednosti. Če želite na primer pridobiti filme s seznamom z oceno PG in PG-13, lahko izvedemo poizvedbo na naslednji način:

IZBERITE naslov, leto izdaje, oceno
IZ filma
WHERE ocena IN ('PG', 'PG-13');

Rezultat je naslednji:

Primer 3: Filter s podpoizvedbo

Uporabimo lahko tudi WHERE IN v podpoizvedbi, ki nam lahko omogoči filtriranje rezultatov iz danega niza rezultatov.

Recimo, da želimo filtrirati filme glede na jezik. Na primer, za pridobitev filmov v angleškem in japonskem jeziku lahko uporabimo WHERE IN znotraj podpoizvedbe, kot sledi:

IZBERITE naslov, leto izdaje, oceno
IZ filma f
WHERE language_id IN (
IZBERI language_id
IZ jezika
WHERE ime IN ('angleščina', 'japonščina')
);

V tem primeru ustvarimo podpoizvedbo, ki pridobi vrednosti »language_id« za angleški in japonski jezik iz tabele »languages«. V glavni poizvedbi izberemo filme na podlagi dobljenih vrednosti »language_id«.

Zaključek

V tej objavi smo se naučili delati s klavzulo WHERE IN v SQL za filtriranje rezultatov, ki se ujemajo z eno ali več vrednostmi na danem seznamu.