sql >> Database >  >> RDS >> SQLite

SQLite Selecteer Distinct

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 de SELECT 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.


  1. Retourneer rijen die overeenkomen met elementen van invoerarray in plpgsql-functie

  2. Oplossing voor:Store update-, insert- of delete-instructie beïnvloedde een onverwacht aantal rijen (0)

  3. mysql root-wachtwoord vergeten

  4. wat is orakel EBS R12