SQL 给一个数据查询结果添加一列从0到n的序号

    在SQL数据库中,有一个查询结果,这个查询结果没有序号,是按玩家的等级排行来排序的。

    现在我要将这个排序的结果添加一列序号,从0到100,这样可以看到前100名每一名玩家所对应的等级。


   我原有的查询语句如下:

     SQL 给一个数据查询结果添加一列从0到n的序号_第1张图片

(涂抹部分涉及保密内容,不影响此文)


  查询结果如下:

SQL 给一个数据查询结果添加一列从0到n的序号_第2张图片



方法 一(适用于SQL Server 2005及其以后版本):

为了添加一列序号,我只需这样来写:select 名次=Row_number() Over(order by getdate()),* from  表名

                                             或者:select 名次=Row_number() Over(order by getdate()),* from(select查询语句) a

                                             说明:此处 a 为表名,可以随便命名,这个表名不可以少。


修改后语句如下:

SQL 给一个数据查询结果添加一列从0到n的序号_第3张图片

说明:此处 a 是表名,必须要写,自己可以随便命名


查询结果如下:

SQL 给一个数据查询结果添加一列从0到n的序号_第4张图片



方法二:用临时表来做

    像这样修改语句

create table #tmp(
rankid int identity,
account  varchar(50),
firstlogintime VARCHAR(30),
serverid int,
servername varchar(50),
maxlevel  int,
onlinetime int,
updatetime datetime
)
insert into #tmp

select查询语句

select * from #tmp
drop table #tmp


修改之后语句像这样:


SQL 给一个数据查询结果添加一列从0到n的序号_第5张图片


运行效果也是一样的。





你可能感兴趣的:(数据库)