使用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 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
相关推荐
-
高效的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
-
一个基于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) ----
-
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
-
C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序
如果项目中要用到数据库,铁定要用到分页排序.之前在做数据库查询优化的时候,通宵写了以下代码,来拼接分页排序的SQL语句 复制代码 代码如下: /// <summary> /// 单表(视图)获取分页SQL语句 /// </summary> /// <param name="tableName">表名或视图名</param> /// <param name="key">唯一键</param> //
-
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,
-
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
-
解析数据库分页的两种方法对比(row_number()over()和top的对比)
今天,老师带偶们复习了一下数据库中的分页,总体来说,今天感觉还不错,因为以前学的还没忘.好了,进入正题,首先,说说top的方法top方法其实就是将你要查的的页数的数据前得数据去掉 再取前几例: 复制代码 代码如下: 一页3条数据 取第一页的数据 -- 第一页 select top 3 * from T_news; 取第五页的数据--第五页 select top 3 * from T_News where id not in
-
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
-
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
随机推荐
- 脚本与批处理合二为一
- Python写入CSV文件的方法
- 戏说编码发展史
- ExtJS4中的requires使用方法示例介绍
- Vue.js实现实例搜索应用功能详细代码
- 深入理解Angular.JS中的Scope继承
- OpenStack 组件的更新教程
- ionic隐藏tabs的方法
- PHP Static延迟静态绑定用法分析
- 使用JavaScript 实现的人脸检测
- C#实现简单的计算器功能完整实例
- android 仿微信聊天气泡效果实现思路
- JavaScript高级程序设计 读书笔记之十 本地对象Date日期
- Android游戏开发实践之人物移动地图的平滑滚动处理
- PHP中的命名空间相关概念浅析
- C#中的lock、Monitor、Mutex学习笔记
- Vue通过URL传参如何控制全局console.log的开关详解
- AndroidStudio上传本地项目到码云的方法步骤(OSChina)
- Centos下SpringBoot项目启动与停止脚本的方法
- javafx实现五子棋游戏