PostgreSQL IN záradék

Postgresql In Zaradek



A PostgreSQL-ben rengeteg kitétel használható. Az IN záradék az egyik ilyen záradék, és rengeteg előnye van, ha megértjük, hogyan kell használni, különösen a WHERE záradékkal kombinálva. Az IN záradék elsősorban a SELECT utasítással működik, hogy kiszűrje, hogyan szeretné végrehajtani a lekérdezést. Végrehajtáskor az IN záradék ellenőrzi a megadott listát, hogy az megfelel-e a feltételeknek, és kiadja a megfelelő értékeket.

A PostgreSQL IN záradékkal való munkavégzés megértése

A PostgreSQL-ben az IN záradékot és a WHERE záradékot használja a kimenet szűrésére egy értéklistával való összehasonlítással, és az eredmény egy logikai érték.

Íme a használandó szintaxis:







érték IN (érték1, érték2, érték_n);

Az adott szintaxis felveszi az értéket, és összeveti az érték1, érték2 és érték_n értékekkel. Ezután egy logikai értéket ad vissza, ha van egyezés. Az ellenőrzendő értékek listája bármilyen literál típusú lehet, beleértve a karakterláncokat és az egész számokat is. Emellett létrehozhat egy segédlekérdezést, például egy SELECT utasítást.



Beszéljük meg a PostgreSQL IN operátor használatának különböző módjait.



1. Munka egy segédlekérdezéssel

Ahogy korábban említettük, az ellenőrzendő érték lehet egy olyan segédlekérdezés, amely egy lekérdezési utasítás, például a SELECT segítségével kinyeri az értékeket. Így lekérdezhet egy táblázatot egy adott oszlop értékeinek ellenőrzéséhez. Példánkhoz használjuk a következő táblázatot:





Tegyük fel, hogy ellenőrizni akarjuk az összes ügyfelet, akiknek az „order_id” értéke a lekérdezés szakaszban megadott értékek bármelyike ​​lehet. Utasításunk első részeként hozzáadjuk a célértéket, majd a WHERE záradékot használjuk az IN záradékkal együtt a lekérdezés létrehozásához.



Így jelenik meg a lekérdezésünk:

A PostgreSQL ellenőrzi az „order_id” oszlopot a „customers” táblában, és visszaadja az összes olyan rekordot, amelynek „order_id” értéke megegyezik a zárójelben megadottak bármelyikével.

Először egy egész értéklistát használtunk. Ellenőrizhetjük a húrok alapján is. Vegye figyelembe, hogy ha az összes megadott karakterlánc nem egyezik a célértékkel, a rendszer semmit sem ad vissza. A következő példa néhány olyan karakterláncot tartalmaz, amelyek nem szerepelnek a táblázatunkban. Az ilyen karakterláncok kimaradnak, és csak a megfelelő karakterláncok jelennek meg a következő kimenetben:

2. Az IN(SELECT) használata

Előfordulhat, hogy az értéklista kézi megadása nem működik. Dönthet úgy, hogy egy SELECT utasítást használ az értékek listájának lekéréséhez a táblából, és ezek segítségével ellenőrzi a célértéket. Adatbázisunkhoz hozzáadva a következő táblát, az előző „ügyfelek” táblával kombinálhatjuk az allekérdezés elkészítéséhez:

Tegyük fel, hogy csak akkor szeretnénk megjeleníteni az „orders” tábla rekordjait, ha a célérték (order_id) a „customers” táblában szerepel. Itt a „customers.order_id” oszlop az értéklistánk, és ennek értékeit összevetjük az „orders.order_id” oszlopban található értékekkel.

Ebben az esetben csak három bejegyzés felel meg a keresésnek, és ezt kapjuk az IN(SELECT) PostgreSQL záradék kimeneteként.

3. Munka a NOT IN PostgreSQL záradékkal

Az előző paranccsal kiválaszthatjuk a többi érték megjelenítését, amelyek nem egyeznek a célértékkel. Ehhez az IN záradékkal ellentétben az ellenkezőjét tesszük. Ezért tagadjuk a NOT IN parancsot.

Így írjuk meg új parancsunkat:

Figyeljük meg, hogy más kimenetet kapunk, mint amit a 2. példában kaptunk. Ez azért van, mert az IN záradék helyett a NOT IN-vel dolgozunk.

Ideális esetben bármikor hozzáadhatja a NOT értéket, amikor meg akarja tagadni a PostgreSQL IN záradékkal kapott eredményeket. Az alkalmazások száma végtelen. Ha szeretné ellenőrizni az értékeket, és gyorsan látni szeretné az egyezést, az IN záradék a legjobb barátja.

Következtetés

Az IN záradék a WHERE záradékkal együttműködve ellenőrzi a célértéket egy értéklistával. Az IN záradék egy logikai értéket ad vissza, amely megerősíti, hogy a célérték egyezik-e a megadott értékek listájában. Megadhatja az értékeket literálként, vagy a SELECT utasítással létrehozhat egy használható részlekérdezést. Három példát mutattunk be a PostgreSQL IN záradék használatára. Remélhetőleg ez betekintést adott a PostgreSQL IN záradékkal való együttműködés megértéséhez.