Tento výukový kurz SQL se zaměřuje na klíčové slovo SQL DISTINCT v systému Oracle a obsahuje vysvětlení, příklady a cvičení. Pro cvičení této lekce použijte tento odkaz.

Tento výukový kurz je součástí několika příspěvků vysvětlujících psaní základních dotazů v systému Oracle. Chcete-li si přečíst další příspěvky týkající se tohoto tématu, použijte následující odkazy:

  • Psaní základních příkazů SQL SELECT
  • SQL aritmetické operátory
  • SQL aliasy sloupců
  • SQL spojování řetězců
  • SQL klíčové slovo DISTINCT

Klíčové slovo Oracle DISTINCT

Výchozí zobrazení dotazů Oracle jsou všechny řádky včetně duplicitních. Klíčové slovo Oracle DISTINCT v klauzuli SELECT slouží k odstranění duplicitních řádků a zobrazení jedinečného seznamu hodnot.

Příklad: Předpokládejme, že máme tabulku Customers, která obsahuje seznam zákazníků z různých měst: 40 zákazníků z Londýna, 30 z Liverpoolu a 30 z Manchesteru. Měli jste za úkol zobrazit seznam měst, ve kterých tito zákazníci bydlí:

SELECT cityFROM customers

Tento příkaz Oracle není příliš užitečný, protože načte 100 řádků (Londýn se vrátí 40krát, Liverpool 30krát a Manchester 30krát), zatímco naším záměrem bylo zobrazit pouze 3 řádky.

Chcete-li tento problém vyřešit a získat pouze jedinečné hodnoty, použijte klíčové slovo Oracle DISTINCT:

SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers

Výsledek:

CITY------LondonLiverpoolManchester

Poznámka : Klíčové slovo Oracle DISTINCT by mělo být zařazeno hned za klíčové slovo Oracle SELECT.

Příkaz Oracle DISTINCT na více sloupců

Po klíčovém slově Oracle DISTINCT je možné zadat více než jeden sloupec. Kvalifikátor Oracle DISTINCT ovlivňuje všechny vybrané sloupce, přitom výsledek zobrazí jedinečnou kombinaci hodnot z různých sloupců. Například seznam zákazníků z různých měst a zemí:

Jméno zákazníka Město Země
John Smith Liverpool Anglie
Sophia Williams Londýn Anglie
Emma Miller Liverpool Anglii
Olivia Wilson Paříž Francii
Logan Davis Paříž Francie

Vidíte, že jsou tu dva zákazníci z Liverpoolu-Anglie, dva zákazníci z Paříže-Francie a další zákazník z Londýna-Anglie.

Provedení příkazu Oracle DISTINCT na sloupci Země vede k získání 2 řádků (Anglie,Paříž).

SELECT DISTINCT countryFROM customers

Provedení příkazu Oracle DISTINCT na sloupci Město vede k získání 3 řádků (Liverpool, Londýn, Paříž).

SELECT DISTINCT city FROM customers

Pokud provedete příkaz Oracle DISTINCT na sloupcích Město i Země:

SELECT DISTINCT city , countryFROM customers

Vyhledají se 3 výsledky – Liverpool Anglie, Londýn Anglie, Paříž Francie.

SELECT DISTINCT city FROM customers

Pokud provedete příkaz Oracle DISTINCT na sloupcích Město a Země, vyčtou se 3 výsledky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.