首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ROW_NUMBER添加到查询中会自动排序吗?

将ROW_NUMBER添加到查询中会自动排序吗?
EN

Stack Overflow用户
提问于 2020-09-17 04:33:48
回答 1查看 67关注 0票数 0

如果我将ROW_NUMBER添加到一个简单的select查询中,结果似乎会由ROW_NUMBER列自动排序,即使最后没有将order by添加到select查询中。我试过这个

  • 没有ROW_NUMBER -结果是随机的
  • 使用ROW_NUMBER over (order by some_col) -此ROW_NUMBER列自动排序的结果
  • 使用ROW_NUMBER over (order by some_col desc) -结果再次由反映新方向的ROW_NUMBER列自动排序。

为什么它会这样?在使用order by时是否存在隐式ROW_NUMBER

如果这是特定于供应商的,我正在MSSQL2014上进行测试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 04:42:23

window函数中的ORDER子句仅控制窗口函数所考虑的行的顺序。它不能保证最终的结果集顺序。

过载条款

注意事项:OVER子句中的ORDER子句仅控制分区中的行将被window函数使用的顺序。它不控制最终结果集的顺序。如果查询本身没有ORDER子句,则不能保证行的顺序。您可能会注意到,您的查询可能是按照最后指定的OVER子句的顺序返回的--这是由于SQL Server中当前实现的方式所致。如果Microsoft的Server团队更改了它的工作方式,它可能不再以当前正在观察的方式排序您的结果。如果结果集需要特定的订单,则必须针对查询本身提供order子句。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63931328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档