Sql万能分页代码
sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧
go ----万能分页代码
create procedure [dbo].[sp_datapager]
@pagesize int,--每一页的大小
@pageindex int,--页码数
@tablename varchar(Max),--表的名称
@keycolumn varchar(20),---主键id
@columns varchar(200),--要查询出列的名称
@where varchar(200),---查询条件
@orderby varchar(100),---排序方式
@recordcount int out--输出参数,非0则返回要查询表的总记录数
as
declare @sql nvarchar(3000)
declare @rcsql nvarchar(1000)
set @rcsql='select @rc=count(*) from '+@tablename
set @sql='select top '+convert(varchar(3),@pagesize)+' '+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+')'
if (@where!='')
begin
set @rcsql='select @rc=count(*) from '+@tablename+' where '+@where
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' where '+@where+') and '+@where
end
if (@orderby!='')
begin
if (@where!='')
begin
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' where '+@where+' order by '+@orderby+') and '+
@where+' order by ' +@orderby
end
else
begin
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' order by '+@orderby+')'+' order by ' +@orderby
end
end
declare @param nvarchar(100)
set @param='@rc int output'
exec sp_executesql @sql
exec sp_executesql @rcsql,@param,@rc=@recordcount output
Sql万能分页代码的更多相关文章
- sql语句分页代码
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO alter proc sp_SelectInfomationByKeyWord--创建一个存储过程 - ...
- SQL 数据分页查询
最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...
- Oracle中经典分页代码!
在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...
- SQL Server 分页方法汇总
PageSize = 30 PageNumber = 201 方法一:(最常用的分页代码, top / not in) UserId UserId from UserInfo order by Use ...
- PHP分页初探 一个最简单的PHP分页代码实现
PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...
- 对sql进行分页处理(Oracle版)
直接代码 /// <summary> /// 对sql进行分页处理 /// </summary> /// <param name="sql">& ...
- PHP分页初探 一个最简单的PHP分页代码的简单实现
PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...
- java常用公共代码二之分页代码的实现
在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...
- (3.15)常用知识-sql server分页
推荐使用row_number over()方法,或2012以上使用offset PageSize = PageNumber = 方法一:(最常用的分页代码, top / not in) UserId ...
随机推荐
- java中的数组二分法
数组二分法意在以较快的速度查找到某个值的下标位置. 二分法的核心思想:找到一个数组的中间位置值,判断某个数值是在这个中间值的左边还是右边,如果是左边,将中间位置之前进行二分,二分后,结束位置变为原始中 ...
- python的知识统计笔记
python的发展
- 点击a标签实现txt文件另存的效果
亲测成功,使用servlet实现的,核心代码: 前台代码: function downModel(filePath){ var formFile=$("<form>") ...
- Scala 编码习惯
1. 不用var.var是可以被不断修改的,而val是不能被修改的.使用val而不是var能让你的程序更强壮,bug更少,更好调试,更容易测试,在并发条件下,更容易调优而获得更好的性能.数学证明我们不 ...
- python enumerate() 函数的使用方法
列表是最常用的Python数据类型,前段时间看书的时候,发现了enumerate() 函数非常实用,因为才知道下标可以这么容易的使用,总结一下. class enumerate(object): &q ...
- Java编程思想 - 并发
前言 Q: 为什么学习并发? A: 到目前为止,你学到的都是有关顺序编程的知识,即程序中的所有事物在任意时刻都只能执行一个步骤. A: 编程问题中相当大的一部分都可以通过使用顺序编程来解决,然而,对于 ...
- 很详细的Django入门详解
Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T.在学 ...
- 第四节 pandas 数据加载
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,其中read_csv和read_table这两个使用最多. #导包import pandas as pd from panda ...
- jQuery实现全选、反选和不选功能
HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 <ul id=&q ...
- php7连接mysql测试代码
php7连接mysql测试代码 <?php $mysqli = new mysqli("localhost", "root", "passwor ...