ROW_NUMBER SqlServer 2005 推出的新功能。语法:select *,ROW_Number() over(order by 字段) as '新列名' from table顾名思义:ROW_NUMBER() 为根绝条件查询出来的数据添加一列(有序的一列,连续序号的1,2,3....),虽然说数据库中的表的自增列的ID也是连续的,但是根据筛选条件或者删除行导致ID序号出现断号,而ROW_NUMBER()这个方法恰恰可以生成一个新的一列(序号相连),最主要的应用就是SQL分页;

(1) select * from Table_1

图一  

(2)select ROW_NUMBER() over(order by name desc) as zhong, * from Table_1

图二   按照一个字段,生成一个新的具有排序功能的字段,本例是生成了一个有序号zhong字段,按照name的倒序排。

(3)select ROW_NUMBER() over(order by name desc) as zhong, * from Table_1 order by zhong desc

图三  代码的最终排序结果是按照sql中的order by 而不是按照ROW_NUMBER()中 over的order by 排序的。

(4)使用ROW_NUMBER()函数可以查找指定范围内的数据,实现分页功能。

string sql = String.Format("select * from (select *,ROW_NUMBER() over(order by id) as row from Table_1 where name='{0}') t where row>={1} and row<{2} ",Name.ToString(),((pageIndex - 1) * pageSize).ToString(),((pageIndex) * pageSize).ToString());

把查询出来的结果又按照序号排了一次序,然后根据索引和每页的个数,就能够查出每一次同步请求的分页的数。

(5)不使用ROWER_NUMBER()也能够实现查询指定范围的内容,使用Top来限定范围(3个select)

string sql = "select id from (select top(2)id from (select top(5) id from Table_1 order by id asc) t order by id  desc) m order by id asc"

注意:sql语句子查询中的 order by 排序,子句和主句都要写,若子句中不写,主句中的排序会影响到子句。

转载于:https://www.cnblogs.com/heluo/archive/2012/07/31/2617147.html

教你学会Sql中 ROW_NUMBER的用法相关推荐

  1. SQL中row_number函数用法

    row_number函数用法 1.函数讲解 2.LeetCode实战 1.函数讲解 语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) ...

  2. SQL中 ROW_NUMBER 函数的用法

    SQL中 ROW_NUMBER 函数的用法 ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是 ...

  3. sql去重复操作详解SQL中distinct的用法

    在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select dist ...

  4. SQL中Truncate的用法

    转自:https://www.cnblogs.com/zhoufangcheng04050227/p/7991759.html 本文导读:删除表中的数据的方法有delete,truncate, 其中T ...

  5. 【SQL中limit的用法】

    SQL中limit的用法 说明:limit子句用于限制查询结果返回的数量,常用于分页查询. 用法:[select * from tableName limit i,n ] 参数:tableName: ...

  6. SQL Server中row_number函数用法介绍

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 语法实例: ...

  7. SQL中的limit用法

    limit用法 SQL中的limit函数是用来对数据库中的字段进行限制提取的,如:一个用户表中有许多的用户信息,如果想要取出其中某个位置的某几条数据,就可以使用limit函数. 结构 limit函数结 ...

  8. mysql trunc函数_教您使用SQL中的TRUNC函数

    SQL函数是每个SQL数据库使用者都必须要掌握的,下面就将为您介绍SQL中TRUNC函数的两种用法,供您参考,希望对您学习SQL函数的使用能有帮助. 1.TRUNC(for dates) TRUNC函 ...

  9. Hive中row_number()函数用法详解及示例

    目录 一.Hive 中row_number()函数介绍 二.使用示例 三.总结 四.附录 在Oracle中,我们经常会用到row_number() over(partition by clo1 ord ...

最新文章

  1. python0b1010_笔记-python-字符串格式化-format()
  2. 三十五、虚拟内存的基本概念
  3. Oracle 中count(1) 和count(*) 的区别
  4. python使用pip安装_Python | 如何用pip安装模块和包
  5. python中的mul函数_Sympy:“Mul”对象没有分层函数的“cos”属性
  6. 2021-2025年中国一次性透析装置行业市场供需与战略研究报告
  7. phpcms文章点击量统计方法
  8. 2012NOIP模拟试题
  9. 发动机冒黑烟_发动机冒黑烟是什么原因 发动机冒黑烟怎么解决
  10. Google Chrome 浏览器翻译失败解决办法
  11. 2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning
  12. Spring Boot 分布式事物管理
  13. 1.5Go语言的基本数据类型
  14. 学会这几招,能找到90%以上的资源
  15. 工厂设计模式 - 详解
  16. 12864多级菜单实现方法
  17. 全球与中国工业防护服行业调查与未来发展趋势研究报告
  18. 在信号传输线上为什么要线路阻抗匹配?如何匹配?
  19. 爱联模组接入华为hilink总结——开发简介和移植(一)
  20. 图像旋转(C语言实现)

热门文章

  1. 记录之tensorflow和pytorch中的取范数归一化操作
  2. 顺序表链表 LeetCode专项练习 [19]\[24]
  3. 四级计算机网络选择题,2015全国计算机等级考试四级计算机网络模拟选择题
  4. 计算机音乐除了春天爱情和樱花,High4IU《除了春天爱情和樱花》新歌试听
  5. clojure source code
  6. autosys start_mins
  7. spring 配置jdbc/hibernate/jpa
  8. Java虚拟机(JVM)参数配置说明
  9. Jupyter Notebook 访问密码重置
  10. SpringCloud学习(八)消息总线(Spring Cloud Bus)(Finchley版本)