【SQL 代码】Sql分页(自用)
2024-08-27 03:31:40
效果图:
下面是存储过程的创建,用的时候调用就行了
/****** Object: StoredProcedure [dbo].[spSqlPageByRownumber] Script Date: 2015/3/5 17:34:38 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE proc [dbo].[spSqlPageByRownumber]
@tbName varchar(255), --表名
@tbFields varchar(1000), --返回字段
@PageSize int, --页尺寸
@PageIndex int, --页码
@strWhere varchar(1000), --查询条件
@StrOrder varchar(255) --排序条件
as
declare @strSql varchar(5000) --主语句
declare @strSqlCount nvarchar(500)--
--------------总记录数---------------
if @strWhere !=''
begin
set @strSqlCount='Select count(*) as TotalCout from ' + @tbName + ' where '+ @strWhere
end
else
begin
set @strSqlCount='Select count(*) as TotalCout from ' + @tbName
end
--------------分页------------
if @PageIndex <= 0
begin
set @PageIndex = 1
end
if @strWhere !=''
begin
set @strSql='Select * from (Select row_number() over('+@strOrder+') rowId,'+ @tbFields
+' from ' + @tbName + ' where ' + @strWhere+' ) tb where tb.rowId >'+str((@PageIndex-1)*@PageSize)
+' and tb.rowId <= ' +str(@PageIndex*@PageSize)
end
else
begin
set @strSql='Select * from (Select row_number() over('+@strOrder+') rowId,'+ @tbFields
+' from ' + @tbName + ' ) tb where tb.rowId >'+str((@PageIndex-1)*@PageSize)
+' and tb.rowId <= ' +str(@PageIndex*@PageSize)
end exec(@strSqlCount)
exec(@strSql)
GO
执行:
exec [dbo].spSqlPageByRownumber 'GoodsCategory','*',10,2,'Cid > 0','order by Cid desc'
最新文章
- java继承覆盖与向上转型,权限
- vagrant vbox上配置好开发环境缓存问题
- [转载] COM 套间
- Linq to json
- 来到这里,我放弃了多少- UI基础-疯狂猜图,我们都疯狂了-
- TypeScript学习笔记(二):基本数据类型及数据转换
- vs2008工程配置
- 通过Qt样式表定制程序外观(比较通俗易懂)
- Linux - 简明Shell编程11 - 调用脚本(CallTheScript)
- 清空jQuery validation 显示的错误信息
- 计蒜客 取数游戏 博弈+dp
- 数据库(Mongodb)
- 微机原理基础(四)—— MSC51
- python封装configparser模块获取conf.ini值(优化版)
- Swift5 语言指南(二十三) 协议
- Review——JS的异步与同步
- Java获取电脑IP、MAC、各种版本
- Throwable、Error、Exception、RuntimeException 区别 联系
- android AIDL 入门讲解非常好的文章(网页代码着色给力)
- 【2015 ICPC亚洲区域赛长春站 G】Dancing Stars on Me(几何+暴力)