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?