黑马程序员技术交流社区

标题: sql语句 [打印本页]

作者: WENZISUN    时间: 2013-12-17 19:46
标题: sql语句
本帖最后由 WENZISUN 于 2013-12-18 22:06 编辑

row number用法,举些实例
作者: 许庭洲    时间: 2013-12-17 20:27
本帖最后由 许庭洲 于 2013-12-17 20:29 编辑

1. ROW_NUMBER OVER()函数可以计算每一行数据在结果中的行号(从1开始计数);
2. 使用语法:ROW_NUMBER OVER (排序规则);
3. 比如执行下面的SQL语句:
    SELECT ROW_NUMBER() OVER(ORDER BY FSalary), FNumber, FName, FSalary, FAge FROM T_Employee
    执行完毕就能在输出结果中看到下面的执行结果:
//////////////////////////////////////////2013-12-17/////////////////////////////
------------------------------------------------------------------------------------------
                          | 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.00 | 28       |
------------------------------------------------------------------------------------------
//////////////////////////////////////////2013-12-17////////////////////////////////
4.  可以看到第一列中的数据就是通过ROW_NUMBER()计算出来的行号。






作者: 雨中恋人    时间: 2013-12-17 23:53
select *
from (select * ,row_number()over(order by ID)  as Row from tab)as a
where row<=5
用法 row_number()over(order by ID) --order by 排序列




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