如何写分页存储过程
select*fromawhereidin(Selectmin(id)fromagroupbyuname)表a中的Uname有很多重复的,很多一样的名字。现在要把筛选过后...
select * from a where id in(Select min(id) from a group by uname)
表a中的Uname有很多重复的,很多一样的名字。现在要把筛选过后结果分页显示。
请教下对熟悉的朋友,怎么针对这种情况写分页存储过程。 展开
表a中的Uname有很多重复的,很多一样的名字。现在要把筛选过后结果分页显示。
请教下对熟悉的朋友,怎么针对这种情况写分页存储过程。 展开
1个回答
展开全部
create proc 电影存储过程 --翻页存储过程
@PageSize int, --每页面显示数据条数
@PageIndex int, --页面索引
@PageCount int output, --总页数
@名称 nvarchar(100)
as
--查询范围 (@PageSize*@PageIndex+1) 起始行
-- @PageSize*(@PageIndex+1) 结束行
select * from(select Row_Number() over (order by 影片ID) as id, * from(
select * from 电影 where 名称 like '%'+@名称+'%' or 主演 like '%'+@名称+'%' )a )b where id between (@PageSize*@PageIndex+1) and @PageSize*(@PageIndex+1)
--得到数据行数
select @PageCount=count(1) from 电影 where 名称 like '%'+@名称+'%' or 主演 like '%'+@名称+'%'
--计算出总行数
set @PageCount= (@PageCount-1)/@PageSize+1
print @PageCount
这个是我写过的分页存储过程 给你参考下啊!
@PageSize int, --每页面显示数据条数
@PageIndex int, --页面索引
@PageCount int output, --总页数
@名称 nvarchar(100)
as
--查询范围 (@PageSize*@PageIndex+1) 起始行
-- @PageSize*(@PageIndex+1) 结束行
select * from(select Row_Number() over (order by 影片ID) as id, * from(
select * from 电影 where 名称 like '%'+@名称+'%' or 主演 like '%'+@名称+'%' )a )b where id between (@PageSize*@PageIndex+1) and @PageSize*(@PageIndex+1)
--得到数据行数
select @PageCount=count(1) from 电影 where 名称 like '%'+@名称+'%' or 主演 like '%'+@名称+'%'
--计算出总行数
set @PageCount= (@PageCount-1)/@PageSize+1
print @PageCount
这个是我写过的分页存储过程 给你参考下啊!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询