Sammanfattning :i denna handledning lär du dig hur du använder SQLite SELECT DISTINCT
sats för att ta bort dubbletter av rader i resultatuppsättningen.
Introduktion till SQLite SELECT DISTINCT
klausul
DISTINCT
sats är en valfri sats i SELECT
påstående. DISTINCT
satsen låter dig ta bort dubblettraderna i resultatuppsättningen.
Följande sats illustrerar syntaxen för DISTINCT
klausul:
SELECT DISTINCT select_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
I denna syntax:
- Först,
DISTINCT
satsen måste visas omedelbart efterSELECT
sökord. - För det andra placerar du en kolumn eller en lista med kolumner efter
DISTINCT
nyckelord. Om du använder en kolumn använder SQLite värden i den kolumnen för att utvärdera dubbletten. Om du använder flera kolumner, använder SQLite kombinationen av värden i dessa kolumner för att utvärdera dubbletten.
SQLite anser NULL
värden som dubbletter. Om du använder NULL
värden kommer SQLite att behålla en rad i en NULL
värde.
I databasteorin, om en kolumn innehåller NULL
värden betyder det att vi inte har informationen om den kolumnen med särskilda poster eller så är informationen inte tillämplig.
Till exempel om en kund har ett telefonnummer med NULL
värde, betyder det att vi inte har information om kundens telefonnummer vid tidpunkten för registrering av kundinformation eller att kunden kanske inte har något telefonnummer alls.
SQLite SELECT DISTINCT
exempel
Vi kommer att använda kunderna
tabell i exempeldatabasen för demonstration.
Anta att du vill veta städerna där kunderna befinner sig, kan du använda SELECT
uttalande för att hämta data från city
kolumnen för kunderna
tabell enligt följande:
SELECT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Prova det
Den returnerar 59 rader. Det finns få dubbletter av rader som Berlin
London
och Mountain View
För att ta bort dessa duplicerade rader använder du DISTINCT
klausul enligt följande:
SELECT DISTINCT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Prova det
Den returnerar 53 rader eftersom DISTINCT
klausulen har tagit bort 6 dubbletter av rader.
SQLite SELECT DISTINCT
på flera kolumner
Följande uttalande hittar städer och länder för alla kunder.
SELECT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Prova det
Resultatuppsättningen innehåller dubbletter av stad och land, t.ex. Sao Paulo i Brasilien som visas i skärmdumpen ovan.
För att ta bort dubbletter av stad och land använder du DISTINCT
sats till både stad och land kolumner som visas i följande fråga:
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Här är den partiella utmatningen:
Som nämnts tidigare använder SQLite kombinationen av stad och land för att utvärdera dubbletten.
SQLite SELECT DISTINCT
med NULL
exempel
Detta uttalande returnerar namnen på företag till kunder från kunderna
bord.
SELECT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Prova det
Den returnerar 59 rader med många NULL
värden.
Nu, om du använder DISTINCT
satsen i satsen kommer den bara att behålla en rad med en NULL
värde.
Se följande uttalande:
SELECT DISTINCT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Prova det
Satsen returnerar 11 rader med en NULL
värde.
Observera att om du väljer en lista med kolumner från en tabell och vill få en unik kombination av vissa kolumner, kan du använda GROUP BY
klausul.
I den här handledningen har du lärt dig hur du tar bort dubbletter av rader från en resultatuppsättning med SQLite SELECT DISTINCT
klausul.