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行号排序和分页相关推荐

  1. Linux查询sql显示井号,SQL井号标签的正则表达式表

    如果您关于使用MS SQL Server作为RDBMS,以及skills列除hashtags和si之外不包含其他内容空格,您可以将skills列转换为XML字符串,然后使用SQL Server的内置X ...

  2. mysql 行号_mysql的行号问题

    1.行号问题行号是指按顺序为查询结果集的行分配的连续整数.Mysql数据库在行号方面的支持并不是十分友好,没有橡其他数据库一样提供类似的row_number解决方案,因此得到行号是一个十分有技巧的问题 ...

  3. 『MySQL』行号关联查询

    前言 永远相信美好的事情即将发生 背景 前段时间碰到过这样一个问题,查询出一家店铺在2020年和2019年活动类型为'xxx'的日期,因历史原因,2019年的活动和2020年的活动分别存储在两张表中, ...

  4. 如何在IntelliJ中永久启用行号?

    如何在IntelliJ IDEA中永久启用行号? #1楼 在Mac Intellij 12.1.2上没有文件设置: "文件"左侧有一个应用程序名称菜单项,带有"首选项&q ...

  5. vim 显示和隐藏行号

    vim 显示和隐藏行号 vim显示行号 取消行号 vim显示行号 按键 esc 输入命令 :set number 即可 取消行号 按键 esc 输入命令 :set nonumber 即可`

  6. vue结合highlightjs实现代码高亮+行号

    实现代码高亮+行号设置 1.下载 highlightjs: npm install highlight.js` 2.在main.ts中写 import hljs from 'highlight.js ...

  7. jquery获取动态表格行号_jquery datatables双击,获取行号。

    function dbClickDatatables(rows) { $("#@(Perfix)tbData tbody tr").dblclick(function(e){ de ...

  8. Linux小技巧:如何在 Vim 中显示行号?

    Vim 是一款出色的编辑器,大多数 Linux/UNIX 系统管理员每天都喜欢并使用它. 你可能会想,"如果 Vim 可以显示行号,我会立即切换到 Vim". 要在 Vim 中显示 ...

  9. Oracle根据行号达到分组排序取第一条的效果,排序后取第一条

    Oracle数据无法根据单个字段进行分组,而mysql可以,如果想要达到根据单个字段进行分组可以查询他的行号获取rowNumber达到单个字段分组取第一条效果 SELECT * FROM (SELEC ...

最新文章

  1. 设置子元素在主轴(横轴)方向上的对齐方式为容器的开头_今日推送 CSS Flexbox布局(上)...
  2. Leetcode | Maximal Rectangle
  3. oracle备份恢复之rman恢复到异机
  4. KVM - 调整cpu内存、网卡
  5. Linux shell编程学习笔记-----第六章变量和引用
  6. [JSP]解决Maven创建项目失败
  7. excel自动生成舒尔特表_财务总监:超完美Excel全套账财务系统,自动生成报表,收好喽...
  8. android gallery自动播放,可循环显示图像的Android Gallery组件
  9. [react] react是哪个公司开发的?
  10. Flink Kafka Connector 与 Exactly Once 剖析
  11. 带你揭秘网络工程师群体!
  12. 华为交换机关闭网口_华为交换机如何关闭端口号
  13. 利用python爬取图片_利用Python爬取网页图片
  14. NFT抢购合集工具(免费)
  15. 微信小程序商城系统订单管理功能介绍
  16. AE光效效果插件:Trapcode Shine
  17. 分享!基于新浪API生成短链接的15个最佳平台
  18. 网络棋牌游戏创造快乐心情
  19. 系统集成项目管理工程师证有什么用处?
  20. 玩客云刷armbian安装php环境_【2020.1.28】玩客云刷Armbian的那些坑

热门文章

  1. 使用前端原生 js,贪吃蛇小游戏
  2. VINS-mon代码解析——启动文件lauch文件与参数配置文件yaml介绍
  3. web自动化测试(1):再谈UI发展史与UI、功能自动化测试
  4. cors java 安全问题_CROS与其安全问题处理
  5. Flask学习之旅——1.2项目配置
  6. bzoj1617[Usaco2008 Mar]River Crossing渡河问题
  7. 跳台阶基础版、改进版(不能连续跳2阶)
  8. 计算机小学知识竞答,小学生计算机LOGO语言竞赛试卷附答案
  9. oracle字段名自己翻译是吗,英语翻译Oracle还可以翻译成什么名称..除了甲骨文
  10. Centos7下安装Docker--菜鸟教程