Shrnutí :v tomto tutoriálu se naučíte používat SQLite SELECT DISTINCT
klauzule k odstranění duplicitních řádků v sadě výsledků.
Úvod do SQLite SELECT DISTINCT
klauzule
DISTINCT
klauzule je volitelná klauzule SELECT
prohlášení. DISTINCT
klauzule umožňuje odstranit duplicitní řádky v sadě výsledků.
Následující příkaz ilustruje syntaxi DISTINCT
klauzule:
SELECT DISTINCT select_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
V této syntaxi:
- Za prvé,
DISTINCT
klauzule se musí objevit bezprostředně zaSELECT
klíčové slovo. - Za druhé umístíte sloupec nebo seznam sloupců za
DISTINCT
klíčové slovo. Pokud použijete jeden sloupec, SQLite použije hodnoty v tomto sloupci k vyhodnocení duplikátu. V případě, že používáte více sloupců, SQLite použije kombinaci hodnot v těchto sloupcích k vyhodnocení duplikátu.
SQLite považuje NULL
hodnoty jako duplikáty. Pokud použijete DISTINCT
klauzule se sloupcem, který má NULL
SQLite zachová jeden řádek NULL
hodnotu.
V teorii databáze, pokud sloupec obsahuje NULL
hodnoty, znamená to, že nemáme informace o tomto sloupci konkrétních záznamů nebo informace nejsou použitelné.
Pokud má například zákazník telefonní číslo s NULL
hodnota, znamená to, že nemáme informace o telefonním čísle zákazníka v době zaznamenávání informací o zákazníkovi nebo zákazník nemusí mít telefonní číslo vůbec.
SQLite SELECT DISTINCT
příklady
Použijeme customers
tabulka ve vzorové databázi pro demonstraci.
Předpokládejme, že chcete znát města, kde se zákazníci nacházejí, můžete použít SELECT
k získání dat z city
ve sloupci customers
tabulka takto:
SELECT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Vrátí 59 řádků. Existuje několik duplicitních řádků, jako je Berlin
London
a Mountain View
Chcete-li odstranit tyto duplicitní řádky, použijte DISTINCT
doložka takto:
SELECT DISTINCT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Vrátí 53 řádků, protože DISTINCT
klauzule odstranila 6 duplicitních řádků.
SQLite SELECT DISTINCT
na více sloupcích
Následující výpis najde města a země všech zákazníků.
SELECT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Sada výsledků obsahuje duplicitní město a zemi, např. Sao Paulo v Brazílii, jak je znázorněno na snímku obrazovky výše.
Chcete-li odstranit duplicitní město a zemi, použijte DISTINCT
klauzule do sloupců města i země, jak je znázorněno v následujícím dotazu:
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Zde je částečný výstup:
Jak již bylo zmíněno dříve, SQLite používá k vyhodnocení duplikátu kombinaci města a země.
SQLite SELECT DISTINCT
s NULL
příklad
Tento příkaz vrací jména společností zákazníků z customers
tabulka.
SELECT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Vrátí 59 řádků s mnoha NULL
hodnoty.
Nyní, pokud použijete DISTINCT
klauzule k příkazu, zachová pouze jeden řádek s NULL
hodnotu.
Viz následující prohlášení:
SELECT DISTINCT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Příkaz vrátí 11 řádků s jedním NULL
hodnotu.
Všimněte si, že pokud vyberete seznam sloupců z tabulky a chcete získat jedinečnou kombinaci některých sloupců, můžete použít GROUP BY
doložka.
V tomto tutoriálu jste se naučili, jak odstranit duplicitní řádky ze sady výsledků pomocí SQLite SELECT DISTINCT
doložka.