Oracle SELECT DISTINCT

Souhrn: v tomto kurzu se naučíte používat příkaz Oracle SELECT DISTINCT k dotazování na odlišná data z tabulek.

Úvod do příkazu Oracle SELECT DISTINCT

Klausule DISTINCT se používá v příkazu SELECT k filtrování duplicitních řádků v souboru výsledků. Zajišťuje, že vrácené řádky jsou jedinečné pro sloupec nebo sloupce uvedené v klauzuli SELECT.

Následující příklad ilustruje syntaxi příkazu SELECT DISTINCT:

V tomto příkazu se porovnávají hodnoty v column_1 klauzuli table, aby se určily duplicity.

Chcete-li získat jedinečná data na základě více sloupců, stačí zadat seznam sloupců v klauzuli SELECT takto:

V této syntaxi se pro určení jedinečnosti dat použije kombinace hodnot v column_1, column_2 a column_3.

Klauzuli DISTINCT lze použít pouze v příkazu SELECT.

Všimněte si, že DISTINCT je synonymem UNIQUE, což není standard SQL. Je dobré vždy používat DISTINCT místo UNIQUE.

Příklady SELECT DISTINCT od Oracle

Podívejme se na několik příkladů použití SELECT DISTINCT, abychom viděli, jak to funguje.

A) Oracle SELECT DISTINCT jeden sloupec příklad

Podívejte se na tabulku contacts v ukázkové databázi:

Následující příklad získá všechna křestní jména kontaktů:

Dotaz vrátil 319 řádků, což znamená, že tabulka contacts má 319 řádků.

Chcete-li získat unikátní křestní jména kontaktů, přidáte do výše uvedeného příkazu SELECT klíčové slovo DISTINCT takto:

Nyní má množina výsledků 302 řádků, což znamená, že bylo odstraněno 17 duplicitních řádků.

B) Příklad Oracle SELECT DISTINCT více sloupců

Podívejte se na následující tabulku order_items:

Následující příkaz vybere z tabulky order_items odlišné id produktu a množství:

Následující příkaz ilustruje výsledek:

V tomto příkladu jsou obě hodnoty sloupce product_id a quantity použity pro vyhodnocení jedinečnosti řádků ve výsledkové sadě.

C) Oracle SELECT DISTINCT a NULL

Sloupec DISTINCT považuje hodnoty NULL za vzájemně duplicitní. Pokud použijete příkaz SELECT DISTINCT k dotazu na data ze sloupce, který má mnoho hodnot NULL, bude výsledná sada obsahovat pouze jednu hodnotu NULL.

Podívejte se na tabulku locations v ukázkové databázi.

Následující příkaz načte data ze sloupce state, který má mnoho NULL hodnot:

Výsledek:

Jak vidíte, vrátí se pouze jedna NULL hodnota.

Poznamenejte, že pokud chcete na některé sloupce použít DISTINCT a jiné sloupce vynechat, měli byste místo toho použít klauzuli GROUP BY.

V tomto tutoriálu jste se naučili používat příkaz SELECT DISTINCT k získání jedinečných dat na základě jednoho nebo více sloupců.

  • Pomohl vám tento tutoriál?

Napsat komentář

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