Oversigt :i denne øvelse lærer du, hvordan du bruger SQLite SELECT DISTINCT klausul for at fjerne duplikerede rækker i resultatsættet.
Introduktion til SQLite SELECT DISTINCT klausul
DISTINCT klausul er en valgfri klausul af SELECT udmelding. DISTINCT klausul giver dig mulighed for at fjerne de duplikerede rækker i resultatsættet.
Følgende sætning illustrerer syntaksen for DISTINCT klausul:
SELECT DISTINCT select_list
FROM table;Code language: SQL (Structured Query Language) (sql) I denne syntaks:
- For det første
DISTINCTklausul skal vises umiddelbart efterSELECTsøgeord. - For det andet placerer du en kolonne eller en liste over kolonner efter
DISTINCTsøgeord. Hvis du bruger én kolonne, bruger SQLite værdier i den kolonne til at evaluere duplikatet. Hvis du bruger flere kolonner, bruger SQLite kombinationen af værdier i disse kolonner til at evaluere duplikatet.
SQLite betragter NULL værdier som dubletter. Hvis du bruger NULL værdier, vil SQLite beholde en række af en NULL værdi.
I databaseteori, hvis en kolonne indeholder NULL værdier, betyder det, at vi ikke har oplysningerne om den kolonne med bestemte poster, eller oplysningerne er ikke anvendelige.
For eksempel hvis en kunde har et telefonnummer med en NULL værdi, betyder det, at vi ikke har oplysninger om kundens telefonnummer på tidspunktet for registrering af kundeoplysninger, eller at kunden måske slet ikke har et telefonnummer.
SQLite SELECT DISTINCT eksempler
Vi vil bruge kunderne tabel i eksempeldatabasen til demonstration.
Antag, at du vil kende de byer, hvor kunderne befinder sig, kan du bruge SELECT sætning for at hente data fra by kolonne i kunderne tabel som følger:
SELECT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql) Prøv det
Det returnerer 59 rækker. Der er få duplikerede rækker såsom Berlin London og Mountain View For at fjerne disse duplikerede rækker, bruger du DISTINCT klausul som følger:
SELECT DISTINCT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql) Prøv det
Det returnerer 53 rækker, fordi DISTINCT klausul har fjernet 6 duplikerede rækker.
SQLite SELECT DISTINCT på flere kolonner
Følgende erklæring finder byer og lande for alle kunder.
SELECT
city,
country
FROM
customers
ORDER BY
country;Code language: SQL (Structured Query Language) (sql) Prøv det
Resultatsættet indeholder dobbeltby og land, f.eks. Sao Paulo i Brasilien, som vist på skærmbilledet ovenfor.
For at fjerne dubleret af byen og landet skal du anvende DISTINCT klausul til både by- og landkolonner som vist i følgende forespørgsel:
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;Code language: SQL (Structured Query Language) (sql) Her er det delvise output:
Som tidligere nævnt bruger SQLite kombinationen af by og land til at evaluere duplikatet.
SQLite SELECT DISTINCT med NULL eksempel
Denne erklæring returnerer navnene på firmaer af kunder fra kunderne tabel.
SELECT company
FROM customers;Code language: SQL (Structured Query Language) (sql) Prøv det
Det returnerer 59 rækker med mange NULL værdier.
Nu, hvis du anvender DISTINCT klausul til sætningen, vil den kun beholde én række med en NULL værdi.
Se følgende erklæring:
SELECT DISTINCT company
FROM customers;Code language: SQL (Structured Query Language) (sql) Prøv det
Udsagnet returnerer 11 rækker med én NULL værdi.
Bemærk, at hvis du vælger en liste over kolonner fra en tabel og ønsker at få en unik kombination af nogle kolonner, kan du bruge GROUP BY klausul.
I denne øvelse har du lært, hvordan du fjerner dublerede rækker fra et resultatsæt ved hjælp af SQLite SELECT DISTINCT klausul.