sql使用row_number()查询标记行号

背景:  

  在分页功能中,记录需分页显示,需要row_number()函数标记行号。

数据表:

排序之前数据表显示:

sql语句:

1 select ROW_NUMBER() over(order by id) as RowNum,Name,Val from T1

检索结果:

注意:Leslie的ID为Null,经过排序之后,rows却升为了首位。

常见错误:列名RowNum失效。

解释:在sql中热名称(即刚定的名称RowNum)不能马上使用,需要包一层查询。
比如说:实现分页显示,只想查询1-5行的结果,sql语句如下:

1 select ROW_NUMBER() over(order by id) as rows,Name,Val from T1 where rows between 1 and 5

解决方案:

1 select * from
2 (select ROW_NUMBER() over(order by id) as rows,Name,Val from T1) U
3 where rows between 1 and 5;

也就是:

1 with A as
2 (
3 select ROW_NUMBER() over(order by id) as rows,Name,Val from T1
4 )
5 select * from A where A.rows between 1 and 5;

检索结果:

参考资料:热名称

时间: 2024-08-03 09:51:14

sql使用row_number()查询标记行号的相关文章

SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号

SQL Server之 (四) ADO增删查改  登录demo  带参数的sql语句  插入自动返回行号 自己学习笔记,转载请注明出处,谢谢!---酸菜 1.什么是ADO.NET ADO.NET是一组类库,这组类库可以让我们通过程序的方式访问数据库,并以各种方式操作存储在其中的数据; ADO.NET是基于.NET FrameWork,与.NET FrameWork类库的其余部分是高度集成的 2.连接数据库的步骤 ①创建连接字符串 Data Source=XXX-PC; Initial Catal

sql server更新一列为行号

注:引用自http://blog.csdn.net/lenovouser/article/details/52281726 查询显示行号: 1 SELECT 2 row_number () OVER (ORDER BY orderby_id) AS rowNumber 3 FROM 4 table_name; 更新一列为行号: 1 UPDATE table_name 2 SET new_row = t1.rowid 3 FROM 4 ( 5 select table_pk, 6 row_numb

SQL查询显示行号、随机查询、取指定行数据

1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用临时表,但在SQL Server2005中,使用ROW_NUMBER()非常方便. select row_number() over (order by UseriD) as rowNum,* from UserInfo 查询结果: 2.随机查询 有的时候我们需要查询出的数据是随机排序的,newid()函数在扫描每条记录时

tsql 通过row_number() over() 产生行号

先按userIP分组,再按时间排序,最后编号. select row_number() over (partition by UserIp order by insertTime),* from useraccess 也可以只按照某个字段进行自动生成编号. select row_number() over (order by insertTime),* from useraccess 以上就是SQL Server数据库row_number() over() 来自动产生行号的过程.

Spark 读入文件后如何标记行号

Spark读入本地文件后,成为MapPartitionsRDD,可以使用zipWithIndex,转换成ZippedWithIndexRDD: 查看结果,每一行变为二元组"(内容,索引)",索引从0开始: (# Apache Spark,0) ("",1) (Spark is a fast and general cluster computing system for Big Data. It provides,2) --

MYSQL获得查询记录的行号

对于获得查询记录的行号这一功能,Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的ROWNUM,MS SQL Server 则在 2005 版本中提供了ROW_NUMBER()函数.但在 MySQL 中似乎还没有这样的系统自带功能 = =!真是悲剧啊~ 好在民间的力量总是强大的,我们可以自己构造一个类似的功能! 表 a: UID Money 2 444 1 222 3 555 4 6666 想要以Money排序取得排行号:SQL文如下: Select UID,(@rowNum:

SQL——实例记录(对查询结果排行号)

select 订单编号, DENSE_RANK() over(order by 订单编号) from test 排序结果: 55678-0-1     1 55678-0-1     1 33454-0-1     2 33454-0-1     2 33454-0-1     2 这种是按照订单不同的顺序依次往后排 当然也可以在 over后面加上你想要的起始号 例:DENSE_RANK() over(order by 订单编号)+30 那么行号结果是31和32 正常排序: select 订单编

查询中显示MySQL表中的行号

如果我们要想在查询中显示MySQL表的行号,这里我们需要借助在查询语句中定义一个变量.因为MySQL没有专门的显示行号的函数,这一点不像Oracle中的rownum 先来看一个MySQL数据库的表截图,这个截图是没有行号的显示效果 下面为了显示行号的SQL SELECT (@rownum:=@rownum+1) rownum, a.imgPath FROM tb_goods_img a,(SELECT (@rownum:=0)) b 有行号的截图如下 技术提升:我们一起来思考一个问题,虽然上面的

SQL Server 错误行号

https://msdn.microsoft.com/zh-cn/library/ms178600.aspx 返回发生错误的行号,该错误导致运行 TRY…CATCH 构造的 CATCH 块. 语法 ERROR_LINE ( ) 返回值 当在 CATCH 块中调用时: 返回发生错误的行号. 如果错误发生在存储过程或触发器中,则返回例程中的行号. 如果在 CATCH 块作用域以外调用,则返回 NULL. 示例 A.在 CATCH 块中使用 ERROR_LINE 下面的代码示例显示生成被零除错误的 S