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
查看全文
相关阅读:
<Docker学习>5. docker数据管理
<Docker学习>4. docker容器的使用
<Docker学习>3. docker镜像命令使用
<Docker学习>2.Centos7安装docker
java注解
基于django的个人博客网站建立(七)
强大的django-debug-toolbar,django项目性能分析工具
一个简单的WebServer,socket+threading
基于django的个人博客网站建立(六)
基于django的个人博客网站建立(五)
原文地址:https://www.cnblogs.com/wucf2004/p/770242.html
最新文章
ISPF创建一个文件数据集
JCL的简单学习
COBOL语言入门
熟悉c语言(简单入门)
Tensorflow实战系列之一:《Tensorflow实现自己的图像分类》
caffe中google protobuf使用问题
Caffe中Interp层的使用
Git的基本使用
Caffe 根据log信息画出loss,accuracy曲线
Opencv undefined reference to `cv::imread() Ubuntu编译
热门文章
人群密度估计 CrowdCount
Permission denied (publickey). fatal: Could not read from remote repository.
[Tensorflow实战Google深度学习框架]笔记4
Ubuntu系统下安装免驱动摄像头
Elasticsearch和Head插件安装
CentOS7 安装 MySQL5.7
线程安全以及实现方式
重排序
Java内存模型
<Docker学习>6. docker使用网络
Copyright © 2011-2022 走看看