ORDER BY在Sql Server 2008视图中

前端之家收集整理的这篇文章主要介绍了ORDER BY在Sql Server 2008视图中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在我们的数据库中有一个视图,其中有一个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条目顶部的注释.

猜你在找的MsSQL相关文章