ORDER BY在Sql Server 2008视图中
发布时间:2020-12-12 06:22:02 所属栏目:MsSql教程 来源:网络整理
导读:我们在我们的数据库中有一个视图,其中有一个ORDER BY. 现在,我意识到一般不要命令,因为不同的人可能会使用它的不同的东西,并希望有不同的订单.然而,该视图用于要求一定顺序的非常特殊的用例. (这是足球联赛的球队排名.) 数据库是Windows Server 2003 R2框上的
我们在我们的数据库中有一个视图,其中有一个ORDER BY.
现在,我意识到一般不要命令,因为不同的人可能会使用它的不同的东西,并希望有不同的订单.然而,该视图用于要求一定顺序的非常特殊的用例. (这是足球联赛的球队排名.) 数据库是Windows Server 2003 R2框上的Sql Server 2008 Express,v.10.0.1763.0. 视图的定义如下: CREATE VIEW season.CurrentStandingsOrdered AS SELECT TOP 100 PERCENT *,season.GetRanking(TEAMID) RANKING FROM season.CurrentStandings ORDER BY GENDER,TEAMYEAR,CODE,POINTS DESC,FORFEITS,GOALS_AGAINST,GOALS_FOR DESC,DIFFERENTIAL,RANKING 它返回: GENDER,TEAMID,CLUB,NAME,WINS,LOSSES,TIES,GOALS_FOR,POINTS,RANKING 现在,当我针对视图运行SELECT时,它会按照GENDER,TEAMID命令结果.注意,按照order by子句指定,它是由TEAMID而不是POINTS排序的. 但是,如果我复制SQL语句并完全按照新查询窗口中的方式运行,则它将按照ORDER BY子句的指定正确地进行命令. 解决方法ORDER BY子句视图返回的行的顺序是绝对不会保证的.如果您需要特定的行顺序,则必须指定从视图中选择的位置.请参阅this Book On-Line条目顶部的注释. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |