代码之家  ›  专栏  ›  技术社区  ›  makerofthings7

在视图中可以有OrderBy?

  •  4
  • makerofthings7  · 技术社区  · 15 年前

    我的DBA告诉我在SQL视图中不可能有OrderBy。

    我遇到了第三方组件的问题,该组件需要按特定顺序查看。这是真的吗?我不能在一个视图内排序吗?

    4 回复  |  直到 15 年前
        1
  •  9
  •   Donnie    15 年前

    不支持SQL Server视图 order by s、 有一些黑客可以让它们工作,但是它们没有文档,我建议在以后的修订中不要依赖它们来正确工作。

    如果要订购视图,正确的方法是 订货人 select 那是在看风景。

    这是一个通常被误解的观点。所以,参考文献: An article , MSDN .

    *- 订货人 支持 top 条款。所以,理论上,你可以 select top 100% . 这是错误的。服务器不能保证视图保持有序。只有在您可以正确指定 到底是哪一行 包括在内。对于某些查询来说,order by是bekeep,但这完全是一种侥幸,如果您依赖它,您会很高兴地跟踪到当订单没有被保留时最终会弹出的bug。不能保证视图的顺序。

        2
  •  4
  •   Joe Stefanelli    15 年前

    通常,SQL Server会在视图中反对ORDER BY。您可以在查询中包含一个TOP子句,从而允许ORDER by。

        3
  •  0
  •   Jan    15 年前

    我还想说:因为你可以从一个视图中对select进行排序。 但有人能解释一下我的发现吗 here 在msdn上?:

    ORDER BY子句在中无效 视图,内联函数,派生 表和子查询,除非TOP是 也有规定。

        4
  •  0
  •   Mark SQLDev    15 年前

    您的DBA可能担心您需要或想要一个索引视图,这会减慢插入和更新的速度。

    推荐文章