基于ROWCOUNT的分页存储过程
sql分页这是个老话题了,google能一大把,有基于int 型id的嵌套分页, 也有掐头去尾的分页方式,但这两种都需要用TOP。我们都知道,在top后面用变量不是说说的事,也不好整,再说了不是所有的表id都是int行啊。所有今天自己也整了个,大家有兴趣推荐去看看动易的通用分页存储过程。
DECLARE @tmpid varchar(50)
declare @rownum intdeclare @pagesize int
declare @page int
SET @pagesize =5
SET @page = 1
IF @page >1
BEGIN
SET @rownum = @pagesize * (@page-1)
SET ROWCOUNT @rownum
END
IF @page >1
BEGIN
SELECT @tmpid =[or_OrderID] FROM [wos_tbOrder] ORDER BY [or_OrderID] ASC
SET ROWCOUNT @pagesize
SELECT
[or_OrderID]
,[or_CSTNO]
,[or_CSTName]
,[or_ConsignNo]
,[or_TaxID]
,[or_BuildMan]
,[or_Status]
FROM [wos_tbOrder]
WHERE [or_OrderID] > @tmpid ORDER BY [or_OrderID] ASC
END
ELSE
BEGIN
SET ROWCOUNT @pagesize
SELECT
[or_OrderID]
,[or_CSTNO]
,[or_CSTName]
,[or_ConsignNo]
,[or_TaxID]
,[or_BuildMan]
,[or_Status]
FROM [wos_tbOrder] ORDER BY [or_OrderID] ASC
END
浙公网安备 33010602011771号