Samenvatting :in deze tutorial leer je hoe je de SQLite SELECT DISTINCT
. gebruikt clausule om dubbele rijen in de resultatenset te verwijderen.
Inleiding tot SQLite SELECT DISTINCT
clausule
De DISTINCT
clausule is een optionele clausule van de SELECT
uitspraak. De DISTINCT
clausule stelt u in staat om de dubbele rijen in de resultatenset te verwijderen.
De volgende instructie illustreert de syntaxis van de DISTINCT
clausule:
SELECT DISTINCT select_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
In deze syntaxis:
- Eerst de
DISTINCT
clausule moet onmiddellijk verschijnen na deSELECT
zoekwoord. - Ten tweede plaats je een kolom of een lijst met kolommen na de
DISTINCT
trefwoord. Als u één kolom gebruikt, gebruikt SQLite waarden in die kolom om het duplicaat te evalueren. Als u meerdere kolommen gebruikt, gebruikt SQLite de combinatie van waarden in deze kolommen om het duplicaat te evalueren.
SQLite beschouwt NULL
waarden als duplicaten. Als u deDISTINCT
. gebruikt clausule met een kolom met NULL
waarden, houdt SQLite één rij van een NULL
waarde.
In databasetheorie, als een kolom NULL
. bevat waarden, betekent dit dat we de informatie over die kolom met bepaalde records niet hebben of dat de informatie niet van toepassing is.
Als een klant bijvoorbeeld een telefoonnummer heeft met een NULL
waarde, betekent dit dat we geen informatie hebben over het telefoonnummer van de klant op het moment dat de klantgegevens worden vastgelegd, of dat de klant helemaal geen telefoonnummer heeft.
SQLite SELECT DISTINCT
voorbeelden
We gebruiken de customers
tabel in de voorbeelddatabase voor demonstratie.
Stel dat u de steden wilt weten waar de klanten zich bevinden, dan kunt u de SELECT
. gebruiken statement om gegevens op te halen uit de city
kolom van de customers
tabel als volgt:
SELECT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Het geeft 59 rijen terug. Er zijn weinig dubbele rijen zoals Berlin
London
, en Mountain View
Om deze dubbele rijen te verwijderen, gebruikt u de DISTINCT
clausule als volgt:
SELECT DISTINCT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Het retourneert 53 rijen omdat de DISTINCT
clausule heeft 6 dubbele rijen verwijderd.
SQLite SELECT DISTINCT
op meerdere kolommen
De volgende verklaring vindt steden en landen van alle klanten.
SELECT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Probeer het
De resultatenset bevat dubbele stad en land, bijvoorbeeld Sao Paulo in Brazilië, zoals weergegeven in de bovenstaande schermafbeelding.
Om dubbele stad en land te verwijderen, past u de DISTINCT
. toe clausule toe aan zowel de stad- als de landkolommen, zoals weergegeven in de volgende zoekopdracht:
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Hier is de gedeeltelijke output:
Zoals eerder vermeld, gebruikt SQLite de combinatie van stad en land om het duplicaat te evalueren.
SQLite SELECT DISTINCT
met NULL
voorbeeld
Deze verklaring retourneert de namen van bedrijven van klanten van de customers
tafel.
SELECT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Het geeft 59 rijen terug met veel NULL
waarden.
Als u nu de DISTINCT
clausule toe aan het statement, zal het slechts één rij behouden met een NULL
waarde.
Zie de volgende verklaring:
SELECT DISTINCT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Probeer het
De instructie retourneert 11 rijen met één NULL
waarde.
Merk op dat als u een lijst met kolommen uit een tabel selecteert en een unieke combinatie van enkele kolommen wilt, u de GROUP BY
kunt gebruiken clausule.
In deze zelfstudie hebt u geleerd hoe u dubbele rijen uit een resultatenset verwijdert met SQLite SELECT DISTINCT
clausule.