Ho una tabella con un indice cluster PK e altri indici su di essa, sia univoci che non univoci. Se io emissione (esattamente):Ordina Ordine dei risultati per Seleziona SENZA DOVE o ORDINA PER clausola
SELECT * FROM table_name
o
SELECT col1, col2 FROM table_name
in quale ordine saranno le righe restituite?
Questa è la prima domanda in un questionario di intervista che un cliente ci ha inoltrato. Ecco le istruzioni:
Se la risposta a questa domanda non è corretta, interrompi immediatamente l'intervista! L'individuo, indipendentemente dall'abilità dichiarata, non comprende i sistemi di gestione dei database relazionali basati su SQL. Questa è la logica SQL-101 per gli ultimi 25 anni. La risposta corretta è: "sconosciuto/casuale/indeterminato perché non è stata specificata alcuna clausola ORDER BY come parte della query".
Sono in qualche modo non convinto che questo sia effettivamente corretto. Tutti i commenti sono benvenuti
Grazie,
Raj
+1 È inoltre possibile ottenere una scansione ordinata di allocazione in alcune condizioni o SQL Server potrebbe utilizzare la funzione di scansione avanzata di scansione/giostra. [Vedi anche questa risposta] (http://stackoverflow.com/questions/7116004/guarantee-order-of-table-valued-function-results/7117186#7117186) –