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
查看全文
相关阅读:
2019-01-28 dubbo安装并启动测试
JAVAWEB项目获取服务器、项目相关路径方法
Hibernate中的查询方式
Hibernate在eclipse中的简单运用
JQuery Tips(2)----关于$()包装集你不知道的
JQuery Tips(3)----关于$()包装集内元素的改变
JQuery Tips(4)----一些关于提高JQuery性能的Tips
利用FireBug使JQuery的学习更加轻松愉快
asp.net core2 mvc 基础教程--中间件
asp.net core2 mvc 基础教程--服务注册和管道
原文地址:https://www.cnblogs.com/wucf2004/p/770242.html
最新文章
double check
Collection
LinkedList
rm 参数列表过长
vi快捷键
RHadoop: REDUCE capability required is more than the supported max container capability in the cluster
linux命令
netstat
python 字典转json
python 执行 sql 文件
热门文章
kmeans聚类选择最优K值python实现
python3读取Excel(包含合并单元格)
python 格式化输出 列表对齐左对齐右对齐
python 计算两个日期直间连续日期列表
SQL 行列转换常见场景
免费ppt模板 技术演讲不在愁
判断当天是否为月末
使用sklearn之LabelEncoder将Label标准化
2019-03-27 哈夫曼树、哈夫曼编码的理解
2019-03-19 java数据结构(一) 顺序表
Copyright © 2011-2022 走看看