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é,
DISTINCTklauzule se musí objevit bezprostředně zaSELECTklíčové slovo. - Za druhé umístíte sloupec nebo seznam sloupců za
DISTINCTklíč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.