sql >> Base de Datos >  >> RDS >> Sqlserver

Cuando no se especifica "Ordenar por", ¿qué orden elige una consulta para su conjunto de registros?

Si no especifica un ORDER BY , entonces no hay SIN PEDIDO definido.

Los resultados se pueden devolver en un orden arbitrario, y eso también puede cambiar con el tiempo.

No hay un "orden natural" ni nada por el estilo en una base de datos relacional (al menos en todo lo que sé). La única forma de obtener un pedido confiable es explícitamente especificando un ORDER BY cláusula.

Actualización: para aquellos que aún no me creen, aquí hay dos excelentes publicaciones de blog que ilustran este punto (¡con ejemplos de código!):

  • Conor Cunningham (Arquitecto del equipo Core SQL Server Engine):Sin cinturón de seguridad - Orden esperado sin ORDER BY
  • Alexander Kuznetsov:Sin ORDER BY, no hay un orden de clasificación predeterminado (publicación en el archivo web)