日期:2014-05-18  浏览次数:20463 次

自定义存储过程分页的问题!!分不了啊!!!!
SQL code
--我把东西都搞好,帮忙的兄弟也不用自己建表了。
SELECT 'Eason' Name, 'Shall we talk' Song, '?' Mark INTO #Tab
INSERT #Tab SELECT 'Jay','Mine','!'
INSERT #Tab SELECT 'Eason','BabySong','?'
INSERT #Tab SELECT 'Lady','Lady','.'

SELECT * FROM #Tab

--DROP TABLE #Tab

--**********************************************************************--
--*****页面要传条件到分页存储过程里: Song LIKE 'BabySong' AND 1=1 --或更多条件
--**********************************************************************--

--*****以下是我自己写的,分页能出来,但翻页会有问题,而且加了排序彻底翻不了页了。
--    EXEC ('SELECT TOP '+ @strPageSize +' * FROM #Tab WHERE '+@SQL+') 
--  EXEC ('SELECT COUNT(1) [RowCount] FROM #Tab WHERE '+ @SQL)

--****谁帮我写个牛B点的吧!有一点是一定要从页面传条件进这个存储的。


------解决方案--------------------
分页存储过程有很多,去看看邹建的博客
------解决方案--------------------
SQL code

create procedure Page
(
    @pageIndex    int,
    @pageSize    int
)as
begin
    select Name,Song,Mark from
    (select ROW_NUMBER() over(order by Name desc) row, Name,Song,Mark from #Tab)
    temp
    where row between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize
end

------解决方案--------------------
select Name,Song,Mark from
(
select ROW_NUMBER() over(
order by Name desc --排序加在这里
) row, Name,Song,Mark from #Tab
where Song like '%Baby%' --条件加在这后面
)
temp
where row between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize
把这个放在EXEC里面,加上引号,把@pageIndex,@pageSize用条件替换就行了。
------解决方案--------------------
探讨

引用:
select Name,Song,Mark from
(
select ROW_NUMBER() over(
order by Name desc --排序加在这里
) row, Name,Song,Mark from #Tab
where Song like '%Baby%' --条件加在这后面
)
temp
where row be……