Deze SQL-tutorial gaat over het SQL DISTINCT keyword in Oracle, en geeft uitleg, voorbeelden en oefeningen. Gebruik deze link voor de oefeningen van deze les.
Deze zelfstudie is een onderdeel van een aantal berichten waarin wordt uitgelegd hoe u basisquery’s in Oracle kunt schrijven. Om aanvullende berichten over dit onderwerp te lezen, kunt u de volgende links gebruiken:
- Basis SQL SELECT statements schrijven
- SQL rekenkundige operatoren
- SQL kolomaliassen
- SQL string aaneenschakeling
- SQL DISTINCT sleutelwoord
Het Oracle DISTINCT sleutelwoord
De standaard weergave van Oracle queries is alle rijen, inclusief duplicaat rijen. Het Oracle DISTINCT sleutelwoord in de SELECT clause wordt gebruikt om dubbele rijen te elimineren en een unieke lijst van waarden weer te geven.
Voorbeeld: stel we hebben een klantentabel, die een lijst van klanten uit verschillende steden bevat: 40 klanten uit Londen, 30 uit Liverpool en 30 uit Manchester. U werd gevraagd om de lijst met steden weer te geven waar deze klanten wonen:
SELECT cityFROM customers
Deze Oracle-instructie is niet erg nuttig, omdat er 100 rijen worden opgehaald (Londen komt 40 keer terug, Liverpool komt 30 keer terug en Manchester komt 30 keer terug), terwijl het onze bedoeling was om slechts 3 regels weer te geven.
Om dit probleem op te lossen en alleen unieke waarden op te halen, gebruikt u het Oracle DISTINCT-sleutelwoord:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Het resultaat:
CITY------LondonLiverpoolManchester
Note : Het Oracle DISTINCT-sleutelwoord moet onmiddellijk na het Oracle SELECT-sleutelwoord worden ingevoegd.
Oracle DISTINCT Statement on Multiple Columns
Na het Oracle DISTINCT keyword is het mogelijk om meer dan één kolom op te geven. De Oracle DISTINCT qualifier heeft invloed op alle geselecteerde kolommen, waarbij het resultaat de unieke combinatie van waarden uit de verschillende kolommen zal weergeven. Bijvoorbeeld, een lijst van klanten uit verschillende steden en landen:
Customer Name | City | Country |
John Smith | Liverpool | England |
Sophia Williams | Londen | England |
Emma Miller | Liverpool | England |
Olivia Wilson | Parijs | Frankrijk |
Logan Davis | Paris | Frankrijk |
U kunt zien dat er twee klanten uit Liverpool-Engeland, twee klanten uit Parijs-Frankrijk, en nog een klant uit Londen-Engeland.
Uitvoeren van het Oracle DISTINCT statement op de kolom Land levert 2 rijen op (Engeland,Parijs).
SELECT DISTINCT countryFROM customers
Uitvoeren van het Oracle DISTINCT statement op de kolom Stad levert 3 rijen op (Liverpool, Londen, Parijs).
SELECT DISTINCT city FROM customers
Als u de Oracle DISTINCT-instructie uitvoert op zowel de kolom Stad als de kolom Land:
SELECT DISTINCT city , countryFROM customers
Drie resultaten worden opgehaald – Liverpool Engeland, Londen Engeland, Parijs Frankrijk.