Tässä SQL-oppaassa keskitytään SQL:n DISTINCT-avainsanaan Oraclessa ja annetaan selityksiä, esimerkkejä ja harjoituksia. Tämän oppitunnin harjoituksia varten käytä tätä linkkiä.
Tämä opetusohjelma on osa useista viesteistä, joissa selitetään peruskyselyjen kirjoittamista Oraclessa. Voit lukea muita tätä aihetta koskevia viestejä seuraavien linkkien kautta:
- SQL:n SELECT-peruslausekkeiden kirjoittaminen
- SQL:n aritmeettiset operaattorit
- SQL:n sarakkeiden aliakset
- SQL:n merkkijonojen ketjuttaminen
- SQL:n DISTINCT-avainsana
Oraclen DISTINCT-avainsana
Oraclen kyselyjen oletusnäyttö on kaikki rivit, myös duplikaattiset rivit. Oracle DISTINCT -avainsanaa SELECT-lausekkeessa käytetään päällekkäisten rivien poistamiseen ja ainutlaatuisen arvoluettelon näyttämiseen.
Esimerkki: Oletetaan, että meillä on Asiakkaat-taulukko, joka sisältää luettelon asiakkaista eri kaupungeista: 40 asiakasta Lontoosta, 30 Liverpoolista ja 30 Manchesterista. Sinua pyydettiin näyttämään luettelo kaupungeista, joissa nämä asiakkaat asuvat:
SELECT cityFROM customers
Tämä Oraclen lauseke ei ole kovin hyödyllinen, koska se hakee 100 riviä (Lontoo palautuu 40 kertaa, Liverpool palautuu 30 kertaa ja Manchester palautuu 30 kertaa), vaikka tarkoituksemme oli näyttää vain 3 riviä.
Tämän ongelman ratkaisemiseksi ja vain yksilöllisten arvojen hakemiseksi käytä Oracle DISTINCT -avainsanaa:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Tulos:
CITY------LondonLiverpoolManchester
Huomautus : Oracle DISTINCT -avainsana on sisällytettävä heti Oracle SELECT -avainsanan jälkeen.
Oracle DISTINCT Statement on Multiple Columns
Oraclen DISTINCT-avainsanan jälkeen on mahdollista määrittää useampi kuin yksi sarake. Oracle DISTINCT -lause vaikuttaa kaikkiin valittuihin sarakkeisiin, jolloin tulos näyttää eri sarakkeiden arvojen ainutlaatuisen yhdistelmän. Esimerkiksi luettelo eri kaupungeista ja maista tulevista asiakkaista:
Asiakkaan nimi | kaupunki | maa |
John Smith | Liverpool | Englanti |
Sophia Williams | Lontoo | Englanti |
Emma Miller | Liverpool | Englanti |
Olivia Wilson | Pariisi | Ranska |
Logan Davis | Pariisi | Ranska |
Voit nähdä, että Liverpoolissa on kaksi asiakasta-Englannista, kaksi asiakasta Pariisista – Ranskasta ja yksi asiakas Lontoosta – Englannista.
Oraclen DISTINCT-lauseen suorittaminen sarakkeelle Maa johtaa 2 rivin hakemiseen (Englanti,Pariisi).
SELECT DISTINCT countryFROM customers
Oraclen DISTINCT-lauseen suorittaminen sarakkeelle Kaupunki johtaa 3 rivin hakemiseen (Liverpool, Lontoo, Pariisi).
SELECT DISTINCT city FROM customers
Jos suoritat Oracle DISTINCT -lausekkeen sekä Kaupunki että Maa-sarakkeille:
SELECT DISTINCT city , countryFROM customers
Haetaan kolme tulosta: Liverpool Englanti, Lontoo Englanti, Pariisi Ranska.
Haetaan kolme tulosta: Liverpool Englanti, Lontoo Englanti, Pariisi Ranska.