L'ordine di una query può essere forzato utilizzando una clausola "Ordina per" nell'istruzione. Un database SQL in realtà non comprende l'ordine in cui metti le cose o archivia i dati in un determinato ordine. Ciò significa che devi dire a SQL in quale ordine vuoi gli articoli. Ad esempio:
Select * from Table
order by column1 desc
Pensa a come consegnare delle cose alla tua amica:le avrà tutte per te in seguito, ma le riporrà da qualche parte nel frattempo. Potrebbe spostarlo mentre tu non stai cercando di fare spazio a qualcos'altro, o potrebbe restituirlo nello stesso ordine in cui gliel'hai dato, ma non le hai detto di tenerlo in ordine, quindi non lo fa .
I database devono essere in grado di spostare le cose in background, quindi il modo in cui sono costruiti non conosce intrinsecamente alcun ordine:devi conoscere l'ordine quando lo dai al database, in modo da poterlo reinserire nel ordine che vuoi più tardi. La clausola order consente a SQL di imporre un ordine sui dati, ma non ne ricorda o ne ha uno da solo.
Punto importante :Anche quando SQL ha restituito gli articoli nell'ordine corretto senza un ordine per istruzione nelle ultime 1 milione di volte, non garantisce che lo farà. Anche se nella tabella esiste un indice cluster, non è garantito che i risultati vengano restituiti nell'ordine previsto. Soprattutto quando le versioni SQL cambiano, non utilizzare esplicitamente una clausola order by può interrompere i programmi che presuppongono che la query sarà nell'ordine desiderato!