A DISTINCT bevezetése az Oracle-ben
A DISTINCT kulcsszó az Oracle adatbázisban szétválasztja vagy kiszűri a duplikált sorokat a SELECT utasítás által visszaadott eredményhalmazban (result a SELECT utasításban szereplő oszlopot/oszlopokat tartalmazza), hogy a lekérdezés által visszaküldött oszlop vagy oszlopok minden olyan értéket vagy rekordot tartalmazzanak, amelyek nem duplikáltak és egyediek, mivel a DISTINCT kulcsszó a lekérdezés által visszaküldött eredményhalmazban szereplő oszlop/oszlopok minden egyes értékét összehasonlítja egymással.
Szintaxis
Kezdje el ingyenes adattudományi tanfolyamát
Hadoop, adattudomány, statisztika & egyéb
Most a distinct kulcsszó szintaxisát fogjuk megvizsgálni az Oracle-ben. Ebben az esetben két lehetőségünk van a szintaxisra. Az első szintaxis a distinct kulcsszó használata feltétel nélkül, a második szintaxis pedig a distinct kulcsszó használata feltételekkel.
Szintaxis feltétel nélkül: Select DISTINCT(expressions) from table_names;
Szintaxis feltétellel:Select DISTINCT(expressions) from table_names ;
Paraméterek
Most megnézzük a fenti két szintaxisban használt különböző paramétereket.
- kifejezések: megadjuk az oszlopneveket vagy kifejezéseket, amelyeket végre akarunk hajtani.
- table_names: Megadjuk a táblázatok neveit, amelyekből a rekordokat szeretnénk. Itt fontos információ, hogy a záradék után legalább egy táblanévnek kell állnia.
- : Ez opcionális Ha megadjuk a where feltételt, akkor a lekérdezés végrehajtása után csak akkor fogjuk lekérdezni az értékeket, ha az említett feltétel teljesül.
Megjegyzés: Egy fontos információ, amit szem előtt kell tartani, hogy a DISTINCT kulcsszó a null értéket is egyedi értéknek tekinti. Tehát abban az esetben, ha egy oszlopban null értékek vannak, és a DISTINCT kulcsszót egyedi értékek lekérdezésére használjuk, akkor a kimeneten a NULL érték is megjelenik.
Hogyan használjuk a DISTINCT kulcsszót az Oracle-ben?
Most már megbeszéltük, mi az a DISTINCT kulcsszó az Oracle-ben, a DISTINCT kulcsszó szintaxisát és a szintaxisban használt különböző paramétereket.
Most különböző példákat fogunk megvizsgálni, hogy megtanuljuk, hogyan használhatjuk hatékonyan a DISTINCT-et az Oracle-ben. Mielőtt rátérnénk a példákra, az adatbázisban már létrehozott EMPLOYEE táblát fogjuk használni. A tábla öt oszlopból áll, amelyek a következők: NAME, VEHICLE_NAME, EMPLOYEE_ID, VEHICLE_ID és CITY. Az alábbiakban az alkalmazott táblázatban található értékek képernyőképét láthatjuk. A lekérdezés, amelyet ehhez használni fogunk, az alapvető SELECT utasítás
SELECT * from employee;
Az SQL developerben végrehajtva az alábbiakban látható összes értéket megkapjuk.
Kimenet:
Most kezdjük a példákkal.
1. Egyedi értékek egy oszlopban feltétel nélkül
Ebben a példában a DISTINCT segítségével fogjuk megtalálni az egyedi értékeket egy táblázat egy adott oszlopában feltételek nélkül. Példaként a munkavállaló tábla jármű oszlopában található egyedi értékeket keressük. A lekérdezés az alábbiakban látható:
Kód:
select DISTINCT(vehicle_name) from employee;
Kimenet:
A fenti lekérdezésben, mint látható, megadtuk az oszlop nevét és a táblázat nevét is. A fenti lekérdezés SQL developerben történő végrehajtásakor az alábbi kimenetet kapjuk:
2. Egyedi értékek egy oszlopban feltételekkel
Ebben a példában az előző példához hasonlóan, de egy kis módosítással egyedi értékeket fogunk találni egy oszlopban. Ebben az egyedi értékeket fogjuk kivonni valamilyen feltétel alapján. Példaként hozzuk ki a jármű neve oszlop egyedi értékeit a munkavállalói táblázatból, ha a város nem Kolkata. Az ehhez szükséges lekérdezés az alábbiakban található.
Code:
select DISTINCT(VEHICLE_NAME) from employee where CITY != 'KOLKATA';
Output:
Ha a fenti lekérdezést látja, a lekérdezésnek azokat az értékeket kell visszaadnia, amelyek megfelelnek a where feltételnek. A fenti lekérdezés SQL developerben történő végrehajtásakor az alábbi kimenetet kapjuk.
Amint látható, az előző példában hat egyedi értéket kaptunk, míg a második példában öt egyedi értéket, mivel a második példában hozzáadtunk egy speciális feltételt.
3. Egyedi értékek több oszlopból
Ebben a példában több oszlop egyedi értékeit fogjuk megtalálni a DISTINCT segítségével. Tehát a korábbi példákban egyetlen oszlopot használtunk, de ebben az esetben több oszlopot fogunk használni. Például tegyük fel, hogy a jármű neve és a város egyedi értékeit szeretnénk megtalálni, és az eredményeknek a város oszlop alapján növekvő sorrendben kell lenniük. Nézzük meg az alábbi lekérdezést.
Code:
select DISTINCT VEHICLE_NAME,CITY from employee ORDER BY CITY ASC;
Output:
A fenti lekérdezésben először a város oszlop alapján növekvő sorrendben kivonjuk az adatokat, majd a jármű neve és a város oszlopok mindkét értékét felhasználjuk az egyedi párok kinyeréséhez. A fenti lekérdezés SQL developerben történő végrehajtásakor az alábbi kimenetet kapjuk.
4. DISTINCT NULL értékekkel
A cikkben korábban már tárgyaltuk, hogy a DISTINCT a NULL értékeket egyedi értékként kezeli, így ha van egy oszlopunk, amelyben null értékek vannak. Azt egyedi értékként fogja kezelni. Például a CITY oszlopban null értékek vannak, amit a cikk elején megadott képernyőképen láthat, ahol a munkavállalói táblázat összes értéke látható. Alkalmazzuk tehát a DISTINCT-et a VÁROS oszlopra, hogy megtudjuk, milyen hatással vannak a null értékek az eredményre. Az ehhez szükséges lekérdezés az alábbiakban látható.
Kód:
select DISTINCT CITY from employee;
Kimenet:
A fenti lekérdezés SQL developerben történő végrehajtásakor az alábbi kimenetet kapjuk.
Amint látjuk, a kimenet a null értéket különálló értékként mutatja. Ez tehát azt mutatja, hogy a DISTINCT a null értéket egyedi értékként kezeli.
Következtetés – DISTINCT az Oracle-ben
Ebben a cikkben tárgyaltuk a DISTINCT kulcsszót az Oracle-ben, a DISTINCT lekérdezésekben való használatához használt szintaxisokat, az ezekben a szintaxisokban használt paramétereket, majd különböző példákon keresztül megtudtuk, hogyan használhatjuk a DISTINCT-et az Oracle-ben a szükséges feladataink megoldásához.
Javasolt cikkek
Ez egy útmutató a DISTINCT-hez az Oracle-ben. Itt tárgyaljuk a DISTINCT kulcsszót az oracle-ban, a DISTINCT használatához használt szintaxisokat a kódokban és a kimenetben. A témával kapcsolatos egyéb cikkeinket is átnézheti, ha többet szeretne megtudni –
- Joins in Oracle
- Mi az Oracle Database
- Oracle String Functions
- Oracle Warehouse Builder
- Guide to Top Versions of Oracle
- ORDER BY in MySQL | How to Works?
- Útmutató ehhez a kulcsszóhoz C# nyelven