Is there a "Default Order By Column" in SQL Server?
When I execute a query like SELECT col1, col2, col3 FROM table
,开发者_如何学运维 it gets sorted by the primary key ascending.
I'm just wondering if there is a way to specify a different column, like ORDER BY CreatedDate DESC
if there is no Order By clause?
I doubt it (since it would be very unintuitive, but just wondering anyway.
No. Any ordering you see is an artifact of the query optimizer's strategy. Relational theory forbids that there is any implicit ordering of any set of data.
You can't even count on the same ordering next time for the same query because the optimizer strategy depends on the context and the data which might change.
Even the behavior you are seeing (ordered by pk) is not guaranteed by the standard. You should always specify the order you want things to be retrieved.
精彩评论