视图中按子句订购的替代方案是什么?
-
16-10-2019 - |
题
这个问题只需要在这个网站上:)
正如我所理解的那样,订单被禁止在视图中使用,因为在使用此视图时有可能由多订单进行多个顺序。
我知道有一些绕过此限制的方法,例如 TOP 99.999999 PERCENT
, ,但我想知道什么是最佳实践,而不是如何破解它。
因此,如果我想在数据库中创建视图以供个人使用,这意味着我想连接到数据库,然后查看固定和排序的数据,如果我不能订购视图,该怎么办?
目前在我的SQL Server db中,我有视图 TOP
黑客,我经常使用它们,但感觉不错。
解决方案
没有“有序”视图之类的东西,因为一个视图应该是一组行。如果需要固定订购,请使用存储过程。
其他提示
仅有的 最外层的订单将保证订单
- 任何中间或内部订单都被忽略。
这包括订单。 - 任何表中都没有隐含的顺序
- 该表上没有任何索引(是否群集)的隐含顺序
链接
- “按顺序排序行” (MSDN)
订购仅适用于查询的最外层选择语句的排序结果。例如,请考虑以下视图定义:(示例遵循与此问题匹配的)
将订单添加到视图IE的输出
SELECT whatever FROM MYVIEW ORDER BY whatever
不隶属于 dba.stackexchange