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.

Lämna ett svar

Din e-postadress kommer inte publiceras.