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
DISTINCTclausule moet onmiddellijk verschijnen na deSELECTzoekwoord. - Ten tweede plaats je een kolom of een lijst met kolommen na de
DISTINCTtrefwoord. 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.