简体   繁体   中英

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM