Problem:
Du vil gerne vise ikke-duplikerede poster i SQL.
Eksempel:
Vores database har en tabel med navnet City
med data i kolonnerne id
, name
og country
.
id | navn | land |
---|---|---|
1 | Madrid | Spanien |
2 | Barcelona | Spanien |
3 | Warszawa | Polen |
4 | Krakow | Polen |
Lad os få navnene på landene uden dubletter.
Løsning:
Vi bruger søgeordet DISTINCT
. Her er forespørgslen:
SELECT DISTINCT country FROM City;
Her er resultatet af forespørgslen:
land |
---|
Spanien |
Polen |
Diskussion:
Hvis du ønsker, at forespørgslen kun skal returnere unikke rækker, skal du bruge søgeordet DISTINCT
efter SELECT
. DISTINCT
kan bruges til at hente unikke rækker fra en eller flere kolonner. Du skal angive kolonnerne efter DISTINCT
søgeord.
Hvordan fungerer det under motorhjelmen? Når forespørgslen udføres, vælges hele datasættet først, derefter DISTINCT
fjerner de rækker, der er duplikeret givet de valgte kolonner.
I vores eksempel optræder både Spanien og Polen to gange i tabellen. Men efter at have anvendt søgeordet DISTINCT
, hver af dem returneres kun én gang.