oracle 排序加行号,SQL行号排序和分页
SQL行号排序和分页
(一)行号显示和排序
1.SQL Server的行号
A.SQL 2000使用identity(int,1,1)和临时表,可以显示行号
SELECT
identity(int,1,1) AS ROWNUM,
[DataID]
INTO #1
FROM DATAS
order by DataID;
SELECT * FROM #1
B.SQL 2005提供一个很好用的函数row_number(),
可以直接用来显示行号,当然也可以使用SQL 2000的identity
SELECT www.2cto.com
row_number()over(ORDER BY DataID) AS ROWNUM,
[DataID]
FROM DATAS;
这里如果添加排序功能,则先排序再添加行号
2.ORACLE的行号显示
使用ROWNUM
SELECT
ROWNUM,
[DataID]
FROM DATAS
order by DataID
注意:先加行号再排序,如果想排序好再加行号就要使用子查询
3.取前n条数据
A.SQL版
select top n [DataID] from DATAS
B.ORACLE版
SELECT
[DataID]
FROM DATAS where ROWNUM<=n
其中,n>=1
ORACLE的ROWNUM不能应用于大于,只能 ROWNUM= 1, 或者<= 大于1 的自然数
(二)SQL分页的几种方式
以每页10条数据为例,查询第三页数据,即21-30这些记录
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式: www.2cto.com
SELECT TOP 10 *
FROM DATAS
WHERE DataID NOT IN
(SELECT TOP 20 DataID
FROM DATAS
ORDER BY DataID)
ORDER BY DataID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM DATAS
WHERE ID >
(SELECT MAX(DataID)
FROM (SELECT TOP 20 DataID
FROM DATAS
ORDER BY DataID) AS T)
ORDER BY DataID
3.分页方案三
select top 10 DataID from
(SELECT top 30
[DataID]
FROM DATAS
order by dataid desc) A
ORDER BY DataID
4.分页方案四:(利用SQL的游标存储过程分页)
create procedure SqlPager
@sql nvarchar(8000), --查询字符串
@curpage int, --第N页
@pagesize int --每页行数
as www.2cto.com
set nocount on
declare @P int, --P是游标的id
@rowcount int
exec sp_cursoropen @P output,@sql,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数,@rowcount as 总行数,@curpage as 当前页
set @curpage=(@curpage-1)*@pagesize+1
exec sp_cursorfetch @P,16,@curpage,@pagesize
exec sp_cursorclose @P
set nocount off
作者 流上
oracle 排序加行号,SQL行号排序和分页相关推荐
- Linux查询sql显示井号,SQL井号标签的正则表达式表
如果您关于使用MS SQL Server作为RDBMS,以及skills列除hashtags和si之外不包含其他内容空格,您可以将skills列转换为XML字符串,然后使用SQL Server的内置X ...
- mysql 行号_mysql的行号问题
1.行号问题行号是指按顺序为查询结果集的行分配的连续整数.Mysql数据库在行号方面的支持并不是十分友好,没有橡其他数据库一样提供类似的row_number解决方案,因此得到行号是一个十分有技巧的问题 ...
- 『MySQL』行号关联查询
前言 永远相信美好的事情即将发生 背景 前段时间碰到过这样一个问题,查询出一家店铺在2020年和2019年活动类型为'xxx'的日期,因历史原因,2019年的活动和2020年的活动分别存储在两张表中, ...
- 如何在IntelliJ中永久启用行号?
如何在IntelliJ IDEA中永久启用行号? #1楼 在Mac Intellij 12.1.2上没有文件设置: "文件"左侧有一个应用程序名称菜单项,带有"首选项&q ...
- vim 显示和隐藏行号
vim 显示和隐藏行号 vim显示行号 取消行号 vim显示行号 按键 esc 输入命令 :set number 即可 取消行号 按键 esc 输入命令 :set nonumber 即可`
- vue结合highlightjs实现代码高亮+行号
实现代码高亮+行号设置 1.下载 highlightjs: npm install highlight.js` 2.在main.ts中写 import hljs from 'highlight.js ...
- jquery获取动态表格行号_jquery datatables双击,获取行号。
function dbClickDatatables(rows) { $("#@(Perfix)tbData tbody tr").dblclick(function(e){ de ...
- Linux小技巧:如何在 Vim 中显示行号?
Vim 是一款出色的编辑器,大多数 Linux/UNIX 系统管理员每天都喜欢并使用它. 你可能会想,"如果 Vim 可以显示行号,我会立即切换到 Vim". 要在 Vim 中显示 ...
- Oracle根据行号达到分组排序取第一条的效果,排序后取第一条
Oracle数据无法根据单个字段进行分组,而mysql可以,如果想要达到根据单个字段进行分组可以查询他的行号获取rowNumber达到单个字段分组取第一条效果 SELECT * FROM (SELEC ...
最新文章
- 设置子元素在主轴(横轴)方向上的对齐方式为容器的开头_今日推送 CSS Flexbox布局(上)...
- Leetcode | Maximal Rectangle
- oracle备份恢复之rman恢复到异机
- KVM - 调整cpu内存、网卡
- Linux shell编程学习笔记-----第六章变量和引用
- [JSP]解决Maven创建项目失败
- excel自动生成舒尔特表_财务总监:超完美Excel全套账财务系统,自动生成报表,收好喽...
- android gallery自动播放,可循环显示图像的Android Gallery组件
- [react] react是哪个公司开发的?
- Flink Kafka Connector 与 Exactly Once 剖析
- 带你揭秘网络工程师群体!
- 华为交换机关闭网口_华为交换机如何关闭端口号
- 利用python爬取图片_利用Python爬取网页图片
- NFT抢购合集工具(免费)
- 微信小程序商城系统订单管理功能介绍
- AE光效效果插件:Trapcode Shine
- 分享!基于新浪API生成短链接的15个最佳平台
- 网络棋牌游戏创造快乐心情
- 系统集成项目管理工程师证有什么用处?
- 玩客云刷armbian安装php环境_【2020.1.28】玩客云刷Armbian的那些坑
热门文章
- 使用前端原生 js,贪吃蛇小游戏
- VINS-mon代码解析——启动文件lauch文件与参数配置文件yaml介绍
- web自动化测试(1):再谈UI发展史与UI、功能自动化测试
- cors java 安全问题_CROS与其安全问题处理
- Flask学习之旅——1.2项目配置
- bzoj1617[Usaco2008 Mar]River Crossing渡河问题
- 跳台阶基础版、改进版(不能连续跳2阶)
- 计算机小学知识竞答,小学生计算机LOGO语言竞赛试卷附答案
- oracle字段名自己翻译是吗,英语翻译Oracle还可以翻译成什么名称..除了甲骨文
- Centos7下安装Docker--菜鸟教程