Is there a difference between default sort order for a select query in SQL Server 2005 and SQL Server 2012?
I have a table variable without a primary key. When I execute a select query on the table variable in SQL Server 2005, the records are selected and displayed in alphabetical order as per one of the columns. In SQL Server 2012, the records are displayed in the same order as in the parent table.
The result of the SELECT statement is sorted in an ascending or descending order. An ordering term can be a column in the result list, an alias as specified in the result list, or a column index number in the result list, with or without ASC or DESC . The default sort order is ascending.
The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts the records in ascending order by default.
ASC sorts from the lowest value to highest value. DESC sorts from highest value to lowest value. ASC is the default sort order.
If you'd like to see the latest date first and the earliest date last, you need to sort in descending order. Use the DESC keyword in this case. ORDER BY ExamDate DESC ; Note that in T-SQL, NULL s are displayed first when sorting in ascending order and last when sorting in descending order.
There is no default sort order. Unless you specify it in the ORDER BY
clause, there is no guarantee that the result will be returned the same way all the time.
You might observe that the result is ordered by the PK
or the clustered index, but that's not always going to be the case.
You might want to read this:
Without ORDER BY, there is no default sort order by Alexander Kuznetsov
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With