SQL WHERE IN klausel

Sql Where In Klausel



SQL-is saame kasutada WHERE IN-i, et filtreerida välja antud andmebaasis olevad tulemused. Klausel WHERE IN võimaldab meil valida antud andmebaasist read, mis vastavad ühele või mitmele antud loendi määratud väärtusele.

Selles õpetuses uurime klauslit WHERE IN, et teada saada, kuidas saame seda kasutada antud tabelist või tulemuste komplektist tulemuste välja filtreerimiseks.

SQL WHERE IN klausel

Järgmine näitab SQL-i klausli WHERE IN põhisüntaksit:







VALI veerg1, veerg2, ...
FROM tabeli_nimi
WHERE veeru_nimi IN (väärtus1, väärtus2, ...);

Alustame põhilausega „select”, millele järgneb veerud, mida soovime tulemuskomplekti kaasata.



Järgmisena määrame tabeli, millest tahame tulemusi hankida. Lõpuks määrame filtri tingimuse, kasutades WHERE-klauslit, millele järgneb selle veeru nimi, mille järgi soovime filtreerida. Pärast IN-klauslit määrame väärtuste loendi, mida tahame filtreerimiseks kasutada.



Näide 1: filtreerige üks tulemus

Et paremini demonstreerida, kuidas WHERE IN-i klauslit kasutada, vaatame näidet. Vaatleme Sakila näidisandmebaasist pärit “filmi” tabelit.





Oletame, et tahame hankida kõik filmid reitinguga PG või PG-13. Saame kasutada WHERE IN klauslit järgmiselt:

SELECT pealkiri, väljalaskeaasta, reiting
filmist
WHERE reiting IN (PG);

Sel juhul anname loendi ühest väärtusest, mida soovime IN-klauslis hankida.



Näide 2: Filtreerige mitu väärtust

Samuti saame väärtuste loendis määrata rohkem kui ühe üksuse. Näiteks filmide hankimiseks loendiga, mille reiting on PG ja PG-13, saame päringu käivitada järgmiselt:

SELECT pealkiri, väljalaskeaasta, reiting
filmist
WHERE reiting IN ('PG', 'PG-13');

Saadud väljund on järgmine:

Näide 3: Filtreerige alampäringuga

Samuti saame alampäringus kasutada WHERE IN, mis võimaldab meil tulemusi antud tulemuste komplektist välja filtreerida.

Oletame, et tahame filme keele alusel filtreerida. Näiteks inglis- ja jaapanikeelsete filmide toomiseks saame kasutada alampäringus WHERE IN järgmiselt:

SELECT pealkiri, väljalaskeaasta, reiting
Filmist f
WHERE keele_id IN (
SELECT language_id
keelest
WHERE nimi IN ('inglise', 'jaapani')
);

Selles näites loome alampäringu, mis hangib tabelist 'languages' inglise ja jaapani keele väärtused 'language_id'. Põhipäringus valime filmid saadud “language_id” väärtuste alusel.

Järeldus

Selles postituses õppisime, kuidas töötada SQL-i klausliga WHERE IN, et filtreerida välja tulemused, mis vastavad antud loendi ühele või mitmele väärtusele.