黑马程序员技术交流社区

标题: sql server中Row_number的使用 [打印本页]

作者: 靳石磊    时间: 2013-1-22 12:05
标题: sql server中Row_number的使用
sql server中用Row_Number分页怎么用?比用top分页效率高还是低?
作者: 许庭洲    时间: 2013-1-22 12:47
1. ROW_NUMBER()函数可以计算每一行数据在结果集中的行号(从1开始计数),其使用语法如下:
   ROW_NUMBER OVER(排序规则)
2.举例子:
   SELECT ROW_NUMBER( ) OVER(ORDER BY FSalary),FNumber,FName,FSalary,FAge FROM T_Employee
3.执行完毕就能在输出结果中看到下面的执行结果:
                   FNumber               FName                 FSalary               FAge
   1              DEV001                 Tom                     8300.00               25
   2              SALES002              Kerry                  6200.00               28
   3              HR002                   Tina                    5200.36               25
   4              SALES001             John                    5000.00               23
   5              IT001                    Smith                   3900.00               28
   6              IT002                   <NULL>               2800.00               27
   7              DEV002                 Jerry                   2300.80               28  
   8              HR001                   Jane                   2200.88                23
   9              SALES003              Stone                 1200.00                22
4.从上面的执行结果可以看到第一列中的数据就是通过ROW_NUMBER( ) 计算出来的行号;
5.TOP关键字用来返回结果集中的N条记录,其语法为“SELECT TOP 限制结果集数目 字段列表 SELECT语句其余部分”;
6.例如检索工资水平排在前五位(按照工资从高到低)的员工信息:
    select top 5 * from T_Employee order by FSalary Desc
7.执行完毕就能在输出结果中看到下面的执行结果:
   FNumber            FName              FAge                FSalary                FSubCompany                 FDepartment
   DEV001              Tom                  25                    8300.00               Beijing                              Development  
   SALES002           Kerry               28                    6200.00               Beijing                              Sales
   HR002                Tina                 25                    5200.00               Beijing                              Sales
   SALES001          John                 23                    5000.00               Beijing                              Sales
   IT001                 Smith                28                    3900.00              Beijing                               InfoTech






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2