背景:  

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

数据表:

排序之前数据表显示:

sql语句:

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

检索结果:

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

常见错误:列名RowNum失效。

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

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

解决方案:

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

也就是:

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

检索结果:

参考资料:热名称


在某些情况下,我们希望指定RowNum的排序方式,比如把热门城市(如北京、上海等)排在靠前的位置。

这时需要组合case...when...then的方式来使用Row_Number()函数。sql语句如下:

 select ROW_NUMBER() over(
order by
case Name
when 'Leslie' then
when 'Lily' then
else end asc)as RowNum,Name,Val from T1

检索结果如下:

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

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

    转自:walkingp 1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用 ...

  2. SQL 分组后取最小行号记录

    本示例测试两个表联接查询后,分组并取分组后的最小行号记录 测试表: tb1表结构如下: CREATE TABLE [dbo].[tb1]( ) NOT NULL, ) NULL, ) NULL, CO ...

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

    先按userIP分组,再按时间排序,最后编号. select row_number() over (partition by UserIp order by insertTime),* from us ...

  4. MySQL查询获取行号rownum

    MySQL中可以使用变量产生行号,下面是2个简单例子: 使用工具:MySQL Workbench 说明:表heyf_10中字段,empid(员工工号).deptid(部门编号).salary(薪资): ...

  5. MYSQL行号

    mysql 实现行号的方法——如何获取当前记录所在行号 - senly - 博客园http://www.cnblogs.com/xinlei/archive/2011/12/16/2290349.ht ...

  6. SQL随机查询,显示行号,查询数据段

    1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用临时表,但在SQL Se ...

  7. sql server2005查询分析器显示行号方法

    工具栏:工具--选项--文本编辑器---所有语言--右边复选框 行号 打上勾就ok了

  8. sql查询分析器中显示行号

    -- 工具-> -- 选项-> -- 文本编辑器-> -- 所有语言-> -- 常规-> -- 显示-> -- 行号

  9. MYSQL获得查询记录的行号

    对于获得查询记录的行号这一功能,Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的ROWNUM,MS SQL Server 则在 2005 版本中提供了ROW_NUMBER()函数. ...

随机推荐

  1. C++类 单冒号

    1.继承 class Base { }; class Derived : public Base { }; 示列: class Base   { public: int a=10;  }; class ...

  2. April Fools Contest 2017 F

    Description You are developing a new feature for the website which sells airline tickets: being able ...

  3. Building Forest CodeForces - 195E

    Building Forest CodeForces - 195E 这题意真是难懂啊...话说"An oriented weighted forest is an acyclic weigh ...

  4. 搜狐前端css常用命名

  5. PV,UV,IP概念

    PV是网站分析的一个术语,用以衡量网站用户访问的网页的数量.对于广告主,PV值可预期它可以带来多少广告收入.一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者 ...

  6. MySQLDump在使用之前一定要想到的事情 [转载]

    转载于:http://blog.itpub.net/29254281/viewspace-1392757/ MySQLDump经常用于迁移数据和备份. 下面创建实验数据,两个数据库和若干表create ...

  7. PowerShell和Bash的介绍

    PowerShell是运行在windows平台的脚本,而Bash是运行在linux平台的脚本 现在bash能做的事情,PowerShell也能做,PowerShell的强大之处是它可以管理window ...

  8. P2614 计算器弹琴

    题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilibili.com/vide ...

  9. AJPFX关于Java内部类及其实例化

    public class Outer {    private int size;    public class Inner {        private int counter = 10;  ...

  10. 在js中怎样获得checkbox里选中的多个值?(jQuery)

    思路:利用name属性值获取checkbox对象,然后循环判断checked属性(true表示被选中,false表示未选中).下面进行实例演示: 1.HTML结构 <input type=&qu ...