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.