加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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条目顶部的注释.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读