使用row_number()实现分页实例
create procedure p_News
@pageSize int,@pageIndex int
as
begin
select * from(
select *,Row_Number() over(order by Id) as [$Row_Num] from News
--where [$Row_Num]<=3 这个时候行号不能用,必须全部执行完毕以后才会产生
)as _temp where [$Row_Num] between (@pageIndex*pageSize+1) and (@pageIndex+1)*@pageSize
end
--注意参数的设置,java调用时 String sql="{call p_News(?,?)}"
--select Row_Number() over(order by id) RN,* from News where id ID>3 给最终的结果编一个号,一个连续的号
--order by必须写在括号里面,因为写在from News 后面会报 sql的错误:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
相关推荐
-
一个基于ROW_NUMBER()的通用分页存储过程代码
建立好如下的存储过程,以后要分页,直接调用改存储过程就可以了. 注意:数据量大.性能要求高的,请个性化处理. 复制代码 代码如下: ALTER PROCEDURE [dbo].[COMMON_PROCEDURE_SelectWithPage] @Sql VARCHAR(5000), @CurrentPageNo INT, @PageSize INT, @TotalNum INT OUTPUT AS SET NOCOUNT ON DECLARE @SqlCmd VARCHAR(5000) ----
-
sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)
表结构: 复制代码 代码如下: CREATE TABLE [dbo].[Xtest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [XName] [nvarchar](50) NULL, [XDemo] [nvarchar](500) NULL, CONSTRAINT [PK_xtest] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
-
sqlserver2005使用row_number() over分页的实现方法
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) <BR> 例子: 复制代码 代码如下: select * from ( select *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS RowNumber from table_name as a ) as b where RowNumber BETWEEN 1 and 5 将会返回table表 其中有一列名字为 RowNu
-
Oracle row_number() over()解析函数高效实现分页
复制代码 代码如下: create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TITLE VARCHAR2(30), N_COUNT NUMBER ) prompt Disabling triggers for T_NEWS... alter table T_NEWS disable all triggers; prompt Loading T_NEWS... insert into T_NEWS (ID, N_TYPE, N_TITLE,
-
解析数据库分页的两种方法对比(row_number()over()和top的对比)
今天,老师带偶们复习了一下数据库中的分页,总体来说,今天感觉还不错,因为以前学的还没忘.好了,进入正题,首先,说说top的方法top方法其实就是将你要查的的页数的数据前得数据去掉 再取前几例: 复制代码 代码如下: 一页3条数据 取第一页的数据 -- 第一页 select top 3 * from T_news; 取第五页的数据--第五页 select top 3 * from T_News where id not in
-
C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序
如果项目中要用到数据库,铁定要用到分页排序.之前在做数据库查询优化的时候,通宵写了以下代码,来拼接分页排序的SQL语句 复制代码 代码如下: /// <summary> /// 单表(视图)获取分页SQL语句 /// </summary> /// <param name="tableName">表名或视图名</param> /// <param name="key">唯一键</param> //
-
SQL Server使用row_number分页的实现方法
本文为大家分享了SQL Server使用row_number分页的实现方法,供大家参考,具体内容如下 1.首先是 select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1 生成带序号的集合 2.再查询该集合的 第 1 到第 5条数据 select * from (select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1) a
-
高效的SQLSERVER分页查询(推荐)
第一种方案.最简单.普通的方法: 复制代码 代码如下: SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 45000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC 平均查询100次所需时间:45s 第二种方案: 复制代码 代码如下: SELECT * FROM ( SELECT TOP 30 * FROM (SELECT TOP 4503
-
SQL2005利用ROW_NUMBER() OVER实现分页功能
1.首先介绍ROW_NUMBER() OVER的基本用法 2.看一下实例数据 初始化数据 create table employee (empid int ,deptid int ,salary decimal(10,2)) insert into employee values(1,10,5500.00) insert into employee values(2,10,4500.00) insert into employee values(3,20,1900.00) insert into
-
SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同
临近春节,心早已飞了不在工作上了,下面小编给大家整理些数据库的几种分页查询. Sql Sever 2005之前版本: select top 页大小 * from 表名 where id not in ( select top 页大小*(查询第几页-1) id from 表名 order by id ) order by id 例如: select top 10 * --10 为页大小 from [TCCLine].[dbo].[CLine_CommonImage] where id not in
随机推荐
- python通过post提交数据的方法
- 如何显示数据库的结构?
- 在网上找的创建《CMD命令速查手册》的批处理
- JS日程管理插件FullCalendar简单实例
- 批处理(bat)命令学习的一些总结
- ASP.NET中实现jQuery Validation-Engine的Ajax验证
- 微信小程序 在Chrome浏览器上运行以及WebStorm的使用
- LiteralControl ASP.NET中的另类控件
- php 处理上百万条的数据库如何提高处理查询速度
- Python使用迭代器捕获Generator返回值的方法
- go语言使用RC4加密的方法
- Wordpress 忘记密码的处理方法
- php实现把数组按指定的个数分隔
- sql 2005不允许进行远程连接可能会导致此失败的解决方法
- 查找sqlserver查询死锁源头的方法 sqlserver死锁监控
- Sql Server 数据库索引整理语句,自动整理数据库索引
- 关于RxJava的一些特殊用法小结
- 下载站常用的点击下载地址提示设hao123为首页的js代码
- centos6.4配置163 yum源的方法
- PHP 多维数组排序实现代码