zoukankan
html css js c++ java
sql存储过程分页
[
分享
]
千万数量级分页存储过程(带效果演示)
3
4
CREATE
PROCEDURE
CN5135_SP_Pagination
5
/**/
/*
6 ***************************************************************
7 ** 千万数量级分页存储过程 **
8 ***************************************************************
9 参数说明:
10 1.Tables :表名称,视图
11 2.PrimaryKey :主关键字
12 3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
13 4.CurrentPage :当前页码
14 5.PageSize :分页尺寸
15 6.Filter :过滤语句,不带Where
16 7.Group :Group语句,不带Group By
17 效果演示:http://www.cn5135.com/_App/Opportunities/QueryResult.aspx
18 **************************************************************
*/
19
(
20
@Tables
varchar
(
1000
),
21
@PrimaryKey
varchar
(
100
),
22
@Sort
varchar
(
200
)
=
NULL
,
23
@CurrentPage
int
=
1
,
24
@PageSize
int
=
10
,
25
@Fields
varchar
(
1000
)
=
'
*
'
,
26
@Filter
varchar
(
1000
)
=
NULL
,
27
@Group
varchar
(
1000
)
=
NULL
28
)
29
AS
30
/**/
/*
默认排序
*/
31
IF
@Sort
IS
NULL
OR
@Sort
=
''
32
SET
@Sort
=
@PrimaryKey
33
DECLARE
@SortTable
varchar
(
100
)
34
DECLARE
@SortName
varchar
(
100
)
35
DECLARE
@strSortColumn
varchar
(
200
)
36
DECLARE
@operator
char
(
2
)
37
DECLARE
@type
varchar
(
100
)
38
DECLARE
@prec
int
39
/**/
/*
设定排序语句.
*/
40
IF
CHARINDEX
(
'
DESC
'
,
@Sort
)
>
0
41
BEGIN
42
SET
@strSortColumn
=
REPLACE
(
@Sort
,
'
DESC
'
,
''
)
43
SET
@operator
=
'
<=
'
44
END
45
ELSE
46
BEGIN
47
IF
CHARINDEX
(
'
ASC
'
,
@Sort
)
=
0
48
SET
@strSortColumn
=
REPLACE
(
@Sort
,
'
ASC
'
,
''
)
49
SET
@operator
=
'
>=
'
50
END
51
IF
CHARINDEX
(
'
.
'
,
@strSortColumn
)
>
0
52
BEGIN
53
SET
@SortTable
=
SUBSTRING
(
@strSortColumn
,
0
,
CHARINDEX
(
'
.
'
,
@strSortColumn
))
54
SET
@SortName
=
SUBSTRING
(
@strSortColumn
,
CHARINDEX
(
'
.
'
,
@strSortColumn
)
+
1
,
LEN
(
@strSortColumn
))
55
END
56
ELSE
57
BEGIN
58
SET
@SortTable
=
@Tables
59
SET
@SortName
=
@strSortColumn
60
END
61
SELECT
@type
=
t.name,
@prec
=
c.prec
62
FROM
sysobjects o
63
JOIN
syscolumns c
on
o.id
=
c.id
64
JOIN
systypes t
on
c.xusertype
=
t.xusertype
65
WHERE
o.name
=
@SortTable
AND
c.name
=
@SortName
66
IF
CHARINDEX
(
'
char
'
,
@type
)
>
0
67
SET
@type
=
@type
+
'
(
'
+
CAST
(
@prec
AS
varchar
)
+
'
)
'
68
DECLARE
@strPageSize
varchar
(
50
)
69
DECLARE
@strStartRow
varchar
(
50
)
70
DECLARE
@strFilter
varchar
(
1000
)
71
DECLARE
@strSimpleFilter
varchar
(
1000
)
72
DECLARE
@strGroup
varchar
(
1000
)
73
/**/
/*
默认当前页
*/
74
IF
@CurrentPage
<
1
75
SET
@CurrentPage
=
1
76
/**/
/*
设置分页参数.
*/
77
SET
@strPageSize
=
CAST
(
@PageSize
AS
varchar
(
50
))
78
SET
@strStartRow
=
CAST
(((
@CurrentPage
-
1
)
*
@PageSize
+
1
)
AS
varchar
(
50
))
79
/**/
/*
筛选以及分组语句.
*/
80
IF
@Filter
IS
NOT
NULL
AND
@Filter
!=
''
81
BEGIN
82
SET
@strFilter
=
'
WHERE
'
+
@Filter
+
'
'
83
SET
@strSimpleFilter
=
'
AND
'
+
@Filter
+
'
'
84
END
85
ELSE
86
BEGIN
87
SET
@strSimpleFilter
=
''
88
SET
@strFilter
=
''
89
END
90
IF
@Group
IS
NOT
NULL
AND
@Group
!=
''
91
SET
@strGroup
=
'
GROUP BY
'
+
@Group
+
'
'
92
ELSE
93
SET
@strGroup
=
''
94
/**/
/*
执行查询语句
*/
95
EXEC
(
96
'
97 DECLARE @SortColumn
'
+
@type
+
'
98 SET ROWCOUNT
'
+
@strStartRow
+
'
99 SELECT @SortColumn=
'
+
@strSortColumn
+
'
FROM
'
+
@Tables
+
@strFilter
+
'
'
+
@strGroup
+
'
ORDER BY
'
+
@Sort
+
'
100 SET ROWCOUNT
'
+
@strPageSize
+
'
101 SELECT
'
+
@Fields
+
'
FROM
'
+
@Tables
+
'
WHERE
'
+
@strSortColumn
+
@operator
+
'
@SortColumn
'
+
@strSimpleFilter
+
'
'
+
@strGroup
+
'
ORDER BY
'
+
@Sort
+
'
102
'
103
)
104
GO
105
查看全文
相关阅读:
小爬麦子学院教师
小爬糗事百科
小爬需登录的网站之麦子学院
小爬静态页面图片
python正则表达式
使用Coding.net+Hexo+node.js+git来搭建个人博客
H5键盘事件处理
获取页面高度等信息
JavaScript实用的工具/类库
DOM
原文地址:https://www.cnblogs.com/wucf2004/p/770242.html
最新文章
Python Day 41 Mysql 基础语法(三)Navicat介绍、pymysql模块、事务、视图、函数、存储过程、触发器
Python Day 40 Mysql基本语法(二)外键、唯一索引(联合唯一)、表之间三种关系、数据行的操作(增删改查)、连表操作、SQL语法查询顺序
Python Day 39 Mysql基本语法(一)基本介绍、安装(无界面版)、数据库和数据表增删改查、数据类型(整形,浮点型,字符型,时间 、枚举与集合)
Python Day 38 多路复用epoll、epoll相关函数、MySQL数据库
Python Day 37 基于协程的套接字、IO模型、阻塞IO模型、非阻塞IO模型(non-blocking IO)、多路复用IO模型(IO multiplexing)
进程 vs. 线程
项目规范流程
python 文件读写总结
算法的时间复杂度和空间复杂度
设计模式---工厂模式
热门文章
设计模式---单例模式
设计模式---构造函数模式
HTTP,TCP,IP详解
web.config 拆分
过滤关键词(中间有空格一样过滤)
DataTable 导出Excel 下载 (NPOI)
Django表单上传
小爬新浪新闻AFCCL
python使用mongodb
小爬拉勾网职位
Copyright © 2011-2022 走看看