mysql - ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) 是否保留订单?
问题描述
我计划ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
在没有任何适当数据列用于 order-by 子句的选择查询中使用。
通常,如果我使用有效的列数据ROW_NUMBER()
,每次执行的顺序都完全相同。ORDER BY
通过使用ORDER BY (SELECT NULL)
,ROW_NUMBER()
顺序是什么,它会随着每次执行而改变吗?
如果订单没有改变(从我这边测试,订单没有改变),它有用吗?
解决方案
如果没有明确的ORDER BY
子句,您可能会ROW_NUMBER()
在不同的执行中获得不同的特定行。相同的ORDER BY (SELECT NULL)
是绕过语法要求或语法糖的hack;它不执行命令。
你得到相同的结果,是的,但不能保证。
推荐阅读
- typescript - 是否可以通过泛型名称引用类型?
- r - tidymodels工作流程中的`Augment()`ing`coxph()`输出?
- shopify - 从 Shopify 中的 ID 获取博客名称
- javascript - 在机器人框架中拖放
- javascript - Javascript date.toLocaleString() 为 EST 产生不正确的结果
- html - 在 div 集合上舍入边界?
- r - 闪亮应用程序中的 htmloutput 显示 html,但从应用程序移开并完全重定向到该 html
- ruby-on-rails - 如何在 Rails 中的关联上急切加载关联?
- python-3.x - Python 3 子进程未捕获完整的标准输出
- github - 如何在 Github 上的自述文件中显示图像?