Per quanto ho capito dalla tua domanda.
distinto:- significa selezionare un distinto (tutti i valori selezionati devono essere univoci). order By:- significa semplicemente ordinare le righe selezionate secondo le tue esigenze.
Il problema nella tua prima query è Ad esempio:ho una tabella
ID name
01 a
02 b
03 c
04 d
04 a
ora la query select distinct(ID) from table order by (name)
è confuso quale record dovrebbe prendere per ID - 04 (poiché ci sono due valori,d e a nella colonna Nome). Quindi il problema per il motore DB è qui quando dici order by (name).........