sql 分页rownumber方式
alter procedure [dbo].[proc_getpaging]
(
@TableName nvarchar(500), --表名(可以为多表)
@ReFieldsStr nvarchar(200) = '*', --字段名(全部字段为*)
@OrderString nvarchar(200), --排序字段(支持多字段不用加order by)
@OrderType nvarchar(4)='asc', --排序类型 (ASC DESC)
@WhereString nvarchar(500) =N'', --条件语句(不用加where)
@PageSize int, --每页多少条记录
@PageIndex int = 1 , --指定当前为第几页
@TotalRecord int output , --返回总记录数
@ErrorMsg nvarchar(500) output --返回错误消息
)
as begin
begin try
declare @StartRecord int;
declare @EndRecord int;
declare @TotalCountSql nvarchar(1000);
declare @SqlString nvarchar(2000); set @StartRecord = (@PageIndex-1)*@PageSize + 1
set @EndRecord = @StartRecord + @PageSize - 1
set @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName;--总记录数语句 set @SqlString = N'(select row_number() over (order by '+ @OrderString +' '+@OrderType+') as rowId,'+@ReFieldsStr+' from '+ @TableName;
if (@WhereString! = '' or @WhereString!=null)
begin
set @TotalCountSql=@TotalCountSql + ' where '+ @WhereString;
set @SqlString =@SqlString+ ' where '+ @WhereString;
end --第一次执行得到
if(@TotalRecord is null)
begin
exec sp_executesql @TotalCountSql,N'@TotalRecord int out',@TotalRecord output;
end
----执行主语句
set @SqlString ='select * from ' + @SqlString + ') as t where rowId between ' + ltrim(str(@StartRecord)) + ' and ' + ltrim(str(@EndRecord));
exec(@SqlString)
end try
begin catch
set @ErrorMsg = ERROR_MESSAGE()
end catch
end
declare @total int
declare @msg nvarchar(100)
exec proc_getpaging
'Ritems,honor','Ritems.*','Ritems.itemname','asc','',2,1,@total output ,@msg output
print @total
print @msg
sql 分页rownumber方式的更多相关文章
- sql语句分页多种方式ROW_NUMBER()OVER
sql语句分页多种方式ROW_NUMBER()OVER 摘自: http://www.cnblogs.com/CodingArt/articles/1692468.html 方式一 select to ...
- sql语句分页多种方式
sql语句分页多种方式ROW_NUMBER()OVER sql语句分页多种方式ROW_NUMBER()OVER 2009年12月04日 星期五 14:36 方式一 select top @pageSi ...
- vue+ springboot 分页(两种方式:sql分页 & PageHelper 分页)
方法一:sql分页 思路:使用数据库进行分页 前端使用element-ui的分页组件,往后台传第几页的起始行offest 以及每页多少行pageSize,后台根据起始行数和每页的行数可以算出该页的 ...
- sql分页汇总-摘抄自网络
文章:几种常见SQL分页方式效率比较 个人倾向于:(2005以上版本支持 row_number()) select * from ( select row_number()over(order by ...
- SQL分页
--第一种分页(TOP方式)-- select * from T_Sys_User where User_Id in ( User_Id from T_Sys_User where User_Id n ...
- SQL Server SQL分页查询
SQL Server SQL分页查询的几种方式 目录 0. 序言 1. TOP…NOT IN… 2. ROW_NUMBER() 3. OFFSET…FETCH 4. 执行 ...
- sql分页代码
//三种sql分页语句 SELECT TOP 分页尺寸 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM Blob ...
- SQL点滴16—SQL分页语句总结
原文:SQL点滴16-SQL分页语句总结 今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了. 使用top选项 *from Orders orderid from Or ...
- sql分页存储过程比较
一,先创建一百万条数据 drop table #tmp create table #tmp ( id ,) primary key, name ) ) declare @i int begin ins ...
随机推荐
- C# 封装首页、上一页、下一月、尾页处理器
public void BtnPageClickEvent(object sender,string focusForeground,string lostFocusForeground) { But ...
- 华为手机honor5c root 方法备份
1.首先获取官方解锁码: https://www.emui.com/cn/unlock_detail 2.用 adb 执行 root 命令,如下: 498 adb devies 499 adb d ...
- 解决 no compatible version found: ionic-native@^3.5.0
npm ERR! Linux --generic npm ERR! argv "/usr/src/node-v6.10.3-linux-x64/bin/node" "/u ...
- 接口测试——postman
一.接口测试的准备工作 做接口测试之前需要有接口文档,请求参数,返回参数 二.使用postman进行接口测试 1.get请求 ①get请求可以直接在URL后面添加问号加参数,不需要使用工具来测试接口: ...
- ThinkPHP模型基础类提供的连贯操作方法
ThinkPHP模型基础类提供的连贯操作方法(也有些框架称之为链式操作),可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作. 直线电机哪家好 使用也比较简单, 假如我们现在要查 ...
- 【Uva 12128】Perfect Service
[Link]: [Description] 给你n个机器组成的一棵树,然后,让你在某些机器上安装服务器. 要求,每个机器如果没有安装服务器,都要恰好和一个安装了服务器的机器连接. 问你,最少要安装多少 ...
- win10系统,vbox下安装centos6/7,挂载实现目录共享
用下载好的iso文件,新建虚拟机(所有步骤默认下一步即可). 我用的centos版本:CentOS-7-x86_64-Minimal-1908.iso ISO下载地址 设置虚拟机(指定好镜像后,先不要 ...
- JavaScript中数组的集合和映射
集合 集合(set)是在ES6中引入的一种数据结构,用于表示唯一值的集合,所以它不能包含重复值.接 下来这一小节,就让我们具体来看一下这种新的数据结构. Set集合是一种无重复元素的列表,这是这种数据 ...
- 软件-版本控制器-VisualSVN:VisualSVN
ylbtech-软件-版本控制器-VisualSVN:VisualSVN VisualSVN 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. https:/ ...
- idea配置tomcat中war和war exploded的区别
是选择war还是war exploded 这里首先看一下他们两个的区别: war模式:将WEB工程以包的形式上传到服务器 :war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器 ...