这个问题只需要在此站点中即可:)
据我了解,ORDER BY被禁止在视图中使用,因为使用此视图时可能会进行多个排序。
我知道有很多方法可以绕过此限制,例如TOP 99.999999 PERCENT
,但是我想知道什么是最佳实践,而不是如何破解它。
因此,如果我想在数据库中创建供个人使用的视图,这意味着我想连接到数据库并仅查看固定和排序的数据,如果无法订购视图,该怎么办?
当前在我的SQL Server数据库中,我有关于该TOP
hack的视图,并且我经常使用它们,但是感觉不对。
1
为什么不TOP 100%?
—
加里克2011年
@garik-因为如果我正确理解gbn的链接,它仍然不能保证订购。这只是一个更简洁的错误答案
—
杰克说请尝试topanswers.xyz 2011年
@杰克·道格拉斯(Jack Douglas)这不是一个答案,它是关于99.999最高排名的评论...
—
garik 2011年
@garik-在SQL Server 2008中,前100%被忽略,仅使用99起作用。我认为它是固定的,但我的版本未更新。
—
Yellowblood 2011年
这不是技术限制。这是设计使然。这就是为什么任何解决方法都感觉像黑客一样的原因。在针对视图的查询中强加您的顺序。订单适用于结果集(例如,ge查询输出),而不适用于数据集合(例如,视图或表格)。
—
Nick Chammas