SQL WHERE IN – Példákkal magyarázva

Belefáradt az adatbázisban lévő adatok kézi szűrésébe, és hatékonyabb módot keres az adatok több értékkel történő szűrésére? Az SQL WHERE IN lehet a megoldás, amire szüksége van!

Ha SQL adatbázisokkal dolgozik, valószínűleg találkozott már a WHERE IN operátorral. Ez az operátor több érték megadására szolgál egy WHERE záradékban, lehetővé téve az adatok pontosabb szűrését.

Ezzel az operátorral megadhatja az értékek listáját, amelyek megfelelnek a táblázat egy oszlopának. Ez a lista kódolható vagy egy segédlekérdezés által generálható, így nagy rugalmasságot biztosít az adatok szűrésében.

SQL WHERE IN – Példákkal magyarázva

Használhatja például az IN operátort, hogy megkeresse az összes ügyfelet egy adott városlistából, vagy szűrje az eredményeket termékazonosítók alapján.

A WHERE IN operátor használatának egyik előnye, hogy hatékonyabbá teheti a lekérdezéseket. Ha több VAGY feltétel helyett értéklistát használ, csökkentheti az adatbázis által elvégzendő feldolgozás mennyiségét.

Ez különösen akkor lehet fontos, ha nagy adatkészletekkel vagy összetett lekérdezésekkel dolgozik, ahol még a kis optimalizálás is jelentős teljesítménybeli változást eredményezhet.

Tartalomjegyzék

Mi az SQL WHERE IN záradék?

Az SQL WHERE IN záradék az adatok értéklista alapján történő szűrésére szolgál. Lehetővé teszi több érték megadását egy WHERE záradékban, több VAGY feltétel rövidítésével. A WHERE IN záradék szintaxisa SQL Server , PostgreSQL, MYSQL és Oracle esetén a következő:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

Ha figyelembe vesszük a fenti SELECT utasítást, akkor a WHERE IN záradék lehetővé teszi, hogy olyan táblából adatokat kérjünk le, ahol a megadott oszlop megfelel a lista bármely értékének. Hasznos szintaxis az adatok szűrésére, ha egy meghatározott értékkészletet kell keresni.

Hogyan működik az SQL WHERE IN záradék?

A záradék úgy működik, hogy összehasonlítja a megadott oszlopot a lista minden értékével. Ha az oszlop egyezik a lista bármely értékével, akkor a sor bekerül az eredménykészletbe.

Tegyük fel, hogy van egy „customers” nevű táblázata, amely három oszlopból áll: „customer_id”, „customer_name” és „country”. Szeretné lekérni az összes ügyfelet az Egyesült Államokból, Kanadából és Mexikóból. A következő lekérdezés megmutatja, hogyan kell használni a WHERE IN záradékot: SELECT ügyfélazonosító, ügyfélnév, ország FROM ügyfelek WHERE country IN ('USA', 'Kanada', 'Mexikó');

Példák az SQL WHERE IN záradékra

Ha az eredményeket a lehetséges értékek listája alapján szeretné szűrni, használhatja az SQL WHERE IN záradékot. Ez a záradék egyszerű módot biztosít olyan sorok kiválasztására, amelyekben egy adott oszlop megfelel valamelyik értékkészletnek.

Íme öt példa a záradék használatára:

  1. Az SQL WHERE IN záradék használata egyetlen értékkel

Tegyük fel, hogy ki szeretné jelölni egy olyan táblázat összes sorát, ahol az állapotoszlop „közzétéve” értékre van állítva. Ezt a következő SQL utasítással teheti meg:

SELECT * 
FROM my_table 
WHERE status IN ('published');

Ezzel visszaadja az összes sort, ahol az állapotoszlop „közzétéve” értékre van állítva.

  1. Az SQL WHERE IN záradék használata több értékkel

Tegyük fel, hogy ki szeretné jelölni az összes sort, ahol az állapotoszlop „közzétett” vagy „vázlat” értékre van állítva. A következő SQL utasítást használhatja:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

Ezzel visszaadja az összes sort, ahol az állapotoszlop „közzétéve” vagy „vázlat” értékre van állítva. Ezenkívül tetszőleges számú értéket adhat hozzá, vesszővel elválasztva.

  1. SQL WHERE IN záradék használata Delete utasítással

Tegyük fel, hogy van egy „ügyfelek” nevű táblája a következő adatokkal:

SQL WHERE IN – Példákkal magyarázva

Ha sorokat szeretne törölni ebből a táblázatból a „City” oszlopban lévő több értéke alapján, az SQL WHERE IN záradék használható a DELETE utasítással, ahogy az a következő lekérdezésben látható:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

Ez az utasítás törli az összes olyan sort a „customers” táblázatból, ahol a „City” oszlopnevek egyeznek a lista bármely értékével, azaz „New York”, „Chicago”, „Miami”. A fenti példában törli a táblázat első, harmadik és ötödik sorát.

Vegye figyelembe, hogy amikor a WHERE IN záradékot DELETE utasítással használja, nagyon óvatosnak kell lennie, hogy elkerülje a hibákat, és gondoskodjon arról, hogy a megfelelő adatokat törölje. A legjobb, ha a lekérdezést egy kis adathalmazon teszteli, mielőtt a teljes adatbázison futtatná.

  1. A WHERE IN operátor és az SQL WHERE záradék használata az adatok számértékek alapján történő szűrésére

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

Ez a lekérdezés visszaadja az összes olyan sort a „vevők” táblázatból, ahol az életkor oszlop a 25, 30 vagy 35 számértékeket tartalmazza, a város oszlop pedig a „London” értéket.

Vegye figyelembe, hogy a WHERE IN operátor egy logikai operátor, amely csak egyetlen oszlophoz teszi lehetővé több érték megadását. A SELECT utasítás az adatok táblából való lekérésére, a WHERE záradék pedig az adatok adott feltételek alapján történő szűrésére szolgál.

Ebben a példában a lekérdezés olyan sorokat ad vissza az „ügyfelek” táblából, ahol a kor oszlop egyezik a megadott számértékek egyikével, a város oszlop pedig a „London” értékkel. A lekérdezésben használt oszlopnevek: „age” és „city”, a lekérdezett tábla pedig „customers”.

  1. A WHERE IN használata a SELECT utasítással és az IN operátorral.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

Ebben a példában egy segédlekérdezést használunk az összes ügyfél-azonosító lekérésére a „customers” táblázatból, ahol az ország oszlop az „USA” értéket tartalmazza. Ezután a WHERE IN operátort használjuk a „rendelések” tábla szűrésére ezen ügyfél-azonosítók alapján.

Ez a lekérdezés visszaadja a rendelések táblázatának összes sorát, ahol a customer_id oszlop megegyezik az allekérdezés által visszaadott ügyfél-azonosítók egyikével.

Ne feledje, a WHERE IN operátor egy összehasonlító operátor, amely lehetővé teszi egy oszlop összehasonlítását egy értéklistával. Ebben az esetben a customer_id oszlopot összehasonlítjuk az allekérdezés által visszaadott ügyfél-azonosítók listájával.

Ennek az operátornak és egy segédlekérdezésnek a használatával adott feltételek alapján szűrheti az adatokat, és csak az Ön igényeinek megfelelő adatokat kérheti le.

Az SQL használatának 2 fő előnyei WHERE IN záradék?

  1. Továbbfejlesztett lekérdezési teljesítmény

A záradék kínálja az egyik legnagyobb előnyt a lekérdezés teljesítménye szempontjából. Ha több érték alapján szűri az adatokat, a záradék használata sokkal hatékonyabb és gyorsabb lehet, mint több WHERE záradék írása OR operátorokkal. Ennek az az oka, hogy az adatbázismotor optimalizálhatja a lekérdezés végrehajtási tervet a szükséges adatok hatékony lekérése érdekében.

Vegyük például a következő SQL- lekérdezéseket a „customers” táblával, ahol megpróbáljuk azonosítani az ügyfelek adatait az országuk alapján.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – Példákkal magyarázva

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – Példákkal magyarázva

Ahogy a fenti példában is látható, a záradék használata jelentős javulást eredményezhet a lekérdezés teljesítményében, és több időt takaríthat meg. Könnyebb egyszerre kiválasztani az összes országot, mint országonként kiválasztani az OR operátort egy sokkal nagyobb adatkészletben.

  1. Egyszerűsített lekérdezésírás

Az SQ L WHERE IN záradék használatának másik jelentős előnye , hogy leegyszerűsítheti az összetett lekérdezések írási folyamatát. Ha több érték alapján kell szűrnie az adatokat, akkor több WHERE záradék használata OR operátorokkal gyorsan nehézkessé és nehezen kezelhetővé válhat.

A záradék használatával egyetlen utasításban megadhatja az összes szűrni kívánt értéket, így a lekérdezések könnyebben olvashatók és karbantarthatók. Ez különösen akkor lehet hasznos, ha nagy adatkészletekkel dolgozik, vagy ha összetett lekérdezéseket kell írnia több feltétellel.

Vegyük például a következő SQL-lekérdezést:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

A fenti példa mindkét lekérdezésében a lekérdezés az Apple, a Samsung és a Sony összes „elektronikai” termékét adja vissza.

Az utóbbi lekérdezésben látható WHERE IN záradék használata azonban leegyszerűsítheti az összetett lekérdezések használatának folyamatát, és könnyebben olvashatóvá és érthetőbbé teheti őket.

Ezenkívül segít elkerülni a hibákat, és kevésbé időigényessé teszi.

Végső szavunk

Gratulálunk! Most már tisztában van azzal, hogyan használhatja az SQL WHERE IN záradékot az adatok értéklista alapján történő szűrésére. Értékeljük a tanultakat:

A WHERE IN használatával leegyszerűsítheti az SQL-lekérdezések tartományát, és létrehozhatja azokat a hatékonyabb írási kimenetek lekéréséhez.

Ne feledje, hogy a WHERE IN több VAGY feltétel rövidítése, így helyettesítheti az VAGY utasítások hosszú listáit. Ezenkívül a záradék használható segédlekérdezésekkel, lehetővé téve az adatok szűrését egy másik lekérdezés eredménye alapján.

A WHERE IN használatakor fontos figyelembe venni az összehasonlítandó értékek adattípusait. Ha az adattípusok nem egyeznek, előfordulhat, hogy típuskonverziós függvényeket kell használnia a pontos összehasonlítás érdekében.

Összességében az SQL WHERE IN záradék egy hatékony, de alapvető szintaxis az SQL-lekérdezésekben lévő adatok szűrésére. A záradék elsajátításával javíthatja az SQL-kód teljesítményét és olvashatóságát, így hosszú távon könnyebben kezelhető és karbantartható.


Mi az a Power Query & M Language: Részletes áttekintés

Mi az a Power Query & M Language: Részletes áttekintés

Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.

A SharePoint automatizálási szolgáltatás | Bevezetés

A SharePoint automatizálási szolgáltatás | Bevezetés

Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.

LuckyTemplates lejtődiagram: Áttekintés

LuckyTemplates lejtődiagram: Áttekintés

Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.

LuckyTemplates színes témák az egységes vizualizációkhoz

LuckyTemplates színes témák az egységes vizualizációkhoz

Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Nézzük meg a Standard LuckyTemplates Theming témakört, és tekintsünk át néhány olyan funkciót, amely magában a LuckyTemplates Desktop alkalmazásban található.