Il comando SELECT DISTINCT di SQL serve ad estrarre una sola volta ogni diversa occorrenza di un valore all’interno di un dato campo (in realtà, volendo essere precisi, il comando in questione è SELECT mentre il DISTICT è un suo modificatore).
La sintassi SELECT DISTINCT viene utilizzata quando si ha la necessità di estrarre, da un campo dove sono ammessi valori ripetuti, un elenco di tali valori eliminando i doppioni. Ad esempio, per il campo marca della tabella seguente possono aversi valori duplicati.
id | marca | modello | prezzo |
1 | Apple | iPhone | 300 |
2 | Apple | iPad | 400 |
3 | IBM | Thinkpad | 600 |
4 | IBM | T90 | 300 |
5 | Microsoft | Lumia | 500 |
6 | Microsoft | Surface | 300 |
Volendo ora estrarre, da questa tabella, esclusivamente le marche disponibili dovremmo effettuare una SELECT di questo tipo:
SELECT DISTINCT marca FROM prodotti ORDER BY marca ASC;
Così facendo otteremo questo risutato:
Apple IBM Microsoft
Se, invece, avessimo omesso la clausola DISTINCT la nostra SELECT ci avrebbe restituito:
Apple Apple IBM IBM Microsoft Microsoft
Quindi lo scopo di SELECT DISTINCT è quello di eliminare i doppioni e creare una lista di valori univoci.