Denna SQL-handledning fokuserar på SQL DISTINCT Nyckelordet i Oracle och ger förklaringar, exempel och övningar. Använd den här länken för övningarna i den här lektionen.
Denna handledning är en del av flera inlägg som förklarar hur man skriver grundläggande förfrågningar i Oracle. Om du vill läsa ytterligare inlägg om detta ämne kan du använda följande länkar:
- Skrivning av grundläggande SQL SELECT-anvisningar
- SQL aritmetiska operatorer
- SQL kolumnalias
- SQL string concatenation
- SQL nyckelordet DISTINCT
Oracle DISTINCT nyckelordet
Standardvisningen av Oracle-frågor är alla rader, inklusive dubblettrader. Nyckelordet Oracle DISTINCT i SELECT-klausulen används för att eliminera dubbla rader och visa en unik lista med värden.
Till exempel: Låt oss anta att vi har en tabell Customers som innehåller en lista med kunder från olika städer: 40 kunder från London, 30 från Liverpool och 30 från Manchester. Du ombads att visa listan över städer där dessa kunder är bosatta:
SELECT cityFROM customers
Detta Oracle-statement är inte särskilt användbart eftersom det hämtar 100 rader (London returnerar 40 gånger, Liverpool returnerar 30 gånger och Manchester returnerar 30 gånger), medan vår avsikt var att bara visa 3 rader.
För att lösa detta problem och hämta endast unika värden använder du Oracle DISTINCT nyckelordet:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Resultatet:
CITY------LondonLiverpoolManchester
Anm. : Oracle DISTINCT nyckelordet bör inkluderas omedelbart efter Oracle SELECT nyckelordet.
Oracle DISTINCT Statement on Multiple Columns
Efter nyckelordet Oracle DISTINCT är det möjligt att ange mer än en kolumn. Oracle DISTINCT-kvalificeringen påverkar alla valda kolumner, på så sätt kommer resultatet att visa den unika kombinationen av värden från de olika kolumnerna. Till exempel en lista över kunder från olika städer och länder:
Kundnamn | Stad | Land |
John Smith | Liverpool | England |
Sophia Williams | London | England |
Emma Miller | Liverpool | England |
Olivia Wilson | Paris | Frankrike |
Logan Davis | Paris | Frankrike |
Du kan se att det finns två kunder från Liverpool-England, två kunder från Paris-Frankrike och ytterligare en kund från London-England.
Att utföra Oracle DISTINCT-angivelsen på kolumnen Country resulterar i att två rader hämtas (England,Paris).
SELECT DISTINCT countryFROM customers
Att utföra Oracle DISTINCT-angivelsen på kolumnen City resulterar i att tre rader hämtas (Liverpool, London, paris).
SELECT DISTINCT city FROM customers
Om du utför Oracle DISTINCT-anvisningen på både kolumnerna City och Country:
SELECT DISTINCT city , countryFROM customers
Tre resultat hämtas – Liverpool England, London England, Paris Frankrike.