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,
DISTINCTsatsen måste visas omedelbart efterSELECTsökord. - För det andra placerar du en kolumn eller en lista med kolumner efter
DISTINCTnyckelord. 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.