视图中 ORDER BY 子句的替代方法是什么?

yel*_*ood 12 sql-server order-by view

这个问题必须在这个网站上:)

禁止在视图中使用 ORDER BY,正如我所理解的,因为在使用此视图时可能存在多个 order by。

例如TOP 99.999999 PERCENT,我知道有一些方法可以绕过此限制,但我想知道最佳实践是什么,而不是如何破解它。

所以,如果我想在我的数据库中创建供个人使用的视图,这意味着我想连接到数据库并只看到固定和排序的数据,如果我不能订购视图,我该怎么做?

目前在我的 SQL Server 数据库中,我对TOPhack有意见,我经常使用它们,但感觉不对。

gbn*_*gbn 9

只有最外面的 ORDER BY 才能保证订单

  • 任何中间或内部 ORDER BY 都会被忽略。
    这包括视图中的 ORDER BY
  • 任何表中都没有隐含的顺序
  • 该表上的任何索引(或非聚集)都没有隐含的顺序

链接

ORDER BY 仅保证查询的最外层 SELECT 语句的排序结果。例如,考虑以下视图定义:(以及与此问题匹配的示例)


nvo*_*gel 2

不存在“有序”视图之类的东西,因为视图应该是一组行。如果您想要固定顺序,请使用存储过程。