• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Sql等相关知识,希望本文的分享对您有所帮助

排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别。我们新建一张Order表并添加一些初始数据方便我们查看效果。

表结构和初始数据Sql

附上表结构和初始数据图:

  表结构和初始数据-晓菜鸟

一、ROW_NUMBER

  row_number的用途的非常广泛,排序最好用他,一般可以用来实现web程序的分页,他会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。row_number用法实例:


select ROW_NUMBER() OVER(order by [SubTime] desc) as row_num,* from [Order]


  查询结果如下图所示:

  row_number查询结果-晓菜鸟

  图中的row_num列就是row_number函数生成的序号列,其基本原理是先使用over子句中的排序语句对记录进行排序,然后按照这个顺序生成序号。over子句中的order by子句与SQL语句中的order by子句没有任何关系,这两处的order by 可以完全不同,如以下sql,over子句中根据SubTime降序排列,Sql语句中则按TotalPrice降序排列。


select ROW_NUMBER() OVER(order by [SubTime] desc) as row_num,* from [Order] order by [TotalPrice] desc


  查询结果如下图所示:

  over子句和sql语句中的order by 可完全不同-晓菜鸟

  利用row_number可以实现web程序的分页,我们来查询指定范围的表数据。例:根据订单提交时间倒序排列获取第三至第五条数据。


with orderSection as(    select ROW_NUMBER() OVER(order by [SubTime] desc) rownum,* from [Order])select * from [orderSection] where rownum between 3 and 5 order by [SubTime] desc


  查询结果如下图所示:

  利用row_number实现分页-晓菜鸟

  注意:在使用row_number实现分页时需要特

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05一个用来统计相同姓名人数的SQl语句
  • 2018-12-05SQL Server2008中删除重复记录的方法分享
  • 2018-12-05Mysql分析-show PROCESSLIST 的详情
  • 2018-12-05CentOS下Oracle安装
  • 2017-05-11新建一个MySQL数据库的简单教程
  • 2018-12-05Access 2007通过查询来计算累计余额
  • 2018-12-05从一个serialize过的array的字符串中取出中取对应KEY的value
  • 2018-12-05php运行提示Can''t connect to MySQL server on ''localhost
  • 2017-05-11MySQL查询倒数第二条记录实现方法
  • 2018-12-05MySQL中隐式转换方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • sql 分组查询问题
    • SqlServer 2005 T-SQL Query 学习笔记(4)
    • 免安转MySQL服务的启动与停止方法
    • 分享使用Mariadb时碰到的两个问题
    • SQLServer XML查询快速入门(18句话)
    • mysql explain type连接类型示例
    • SQL数据操作基础(初级)4
    • 防止服务器宕机时MySQL数据丢失的几种方案
    • Windows服务器下MySql数据库单向主从备份详细实现步骤分享
    • MySQL 加密/压缩函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有