sql使用row_number()查询标记行号
背景:
在分页功能中,记录需分页显示,需要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()查询标记行号的更多相关文章
- SQL查询显示行号、随机查询、取指定行数据
转自:walkingp 1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用 ...
- SQL 分组后取最小行号记录
本示例测试两个表联接查询后,分组并取分组后的最小行号记录 测试表: tb1表结构如下: CREATE TABLE [dbo].[tb1]( ) NOT NULL, ) NULL, ) NULL, CO ...
- tsql 通过row_number() over() 产生行号
先按userIP分组,再按时间排序,最后编号. select row_number() over (partition by UserIp order by insertTime),* from us ...
- MySQL查询获取行号rownum
MySQL中可以使用变量产生行号,下面是2个简单例子: 使用工具:MySQL Workbench 说明:表heyf_10中字段,empid(员工工号).deptid(部门编号).salary(薪资): ...
- MYSQL行号
mysql 实现行号的方法——如何获取当前记录所在行号 - senly - 博客园http://www.cnblogs.com/xinlei/archive/2011/12/16/2290349.ht ...
- SQL随机查询,显示行号,查询数据段
1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用临时表,但在SQL Se ...
- sql server2005查询分析器显示行号方法
工具栏:工具--选项--文本编辑器---所有语言--右边复选框 行号 打上勾就ok了
- sql查询分析器中显示行号
-- 工具-> -- 选项-> -- 文本编辑器-> -- 所有语言-> -- 常规-> -- 显示-> -- 行号
- MYSQL获得查询记录的行号
对于获得查询记录的行号这一功能,Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的ROWNUM,MS SQL Server 则在 2005 版本中提供了ROW_NUMBER()函数. ...
随机推荐
- 449B
B. Chtholly's request time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- WIN7 64位操作系统 无法找到Access驱动
为了更充分的利用硬件资源,我想很多人都开使用64位操作系统了,同时你可以也发现了在64位操作系统上ODBC的驱动找不到了,所以ODBC的东西都没法用了. 因为2007以前版本的Office只有32位版 ...
- sql 语句操作,修改字段中字符串的一部分
update 表名 set 字段=replace(字段,‘替换的部分’,‘替换后的字符串’): update 表名 set A=replace( A, '海淀', '朝阳') where A like ...
- Windows下DVWA安装指南
注意:DVWA需要依赖httpd.PHP.MySQL.php-mysql等应用或组件,最简单的方法是安装wampserver(http://www.wampserver.com/),安装完了所需的各种 ...
- IOS-关闭(退)键盘事件--转
方法: 1.手势(触背景)关闭键盘 -(void)tapBackground //在ViewDidLoad中调用{ UITapGestureRecognizer * tap = [[UITapG ...
- What's mean ORA-25191?
1.在给表授权的时候.报错ORA-25191 检查该表为IOT 表 . --因为不是按照单表方式授予权限,而是按照用户的方式授予权限,所以该表的父亲表都在该用户下,所以这个报错可以忽略. 2/ 在参考 ...
- IIS伪静态失效
故障描述: 今天有个美国VPS的用户向我们救助,说他的网站昨晚还好好的,早上起来就发现404了,但是后台却可以正常登陆.经过我们检查后发现原来是伪静态失效了,查看日志,发现许多ISAPI_Rewrit ...
- 关于margin、padding 对内联元素的影响
内联元素和块级元素的区别是新手必须要掌握的知识点.大家可能平时注意块级元素比较多.所以这里重点让我们来讲讲常见的width height margin padding 对inline元素的影响. 测 ...
- SQL中的笛卡儿积问题和多表连接操作
(使用scott用户) SELECT * FROM scott.dept;--4SELECT * FROM scott.emp;--14 /**笛卡尔积内连接(等值连接)外连接(非等值连接)自连接*/ ...
- [Github筆記] 清除所有 Commit 紀錄
# 把原來的 git 移除掉 sudo rm .git -r # 初始化 git init git remote add origin https://github.com/username/repo ...