求多表联合查询后的分页存储过程(无主键)

Return门徒 2010-10-27 04:49:21
求多表联合查询后的分页存储过程(无主键)

请大家不要上网上当下来后贴出来!~
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
浪子-无悔 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 koukoujiayi 的回复:]

多表联合查询的分页存储过程没怎么看到,一般都是单表,
但多表联合,可以先建多表联合的视图,
然后用单表分页存储过程!无需主键
[/Quote]
这个方法不错。
z289830131 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luckyp 的回复:]

给你发个我现在正在用的..好歹你也是4个裤衩的人.应该改改就行自己用了
SQL code


CREATE PROCEDURE [dbo].[Up_Spp_XXXX]
@TTT varchar(8),--条件,你懂的

@pageNo int,
@pageSize int,
@DataCount int output
AS

DECLARE @sql nva……
[/Quote] 顶..
再见品月 2010-10-27
  • 打赏
  • 举报
回复
给你发个我现在正在用的..好歹你也是4个裤衩的人.应该改改就行自己用了


CREATE PROCEDURE [dbo].[Up_Spp_XXXX]
@TTT varchar(8),--条件,你懂的

@pageNo int,
@pageSize int,
@DataCount int output
AS

DECLARE @sql nvarchar(2000)
DECLARE @Filter nvarchar(2000)

set @sql = 'select * from (

select ROW_NUMBER() Over(order by Table1.datatime desc) as rowNum
,Table1.x1 -- 字段1
,Table2.x2 -- 字段2
from Table1
left join Table2 on Table2.id2=Table1.id1
where 1=1
'

set @Filter = ''

if @TTT<>''
begin
set @Filter = @Filter+ ' and (Table1.TTT=''' + @TTT +''')'
end


set @sql=@sql+@Filter+') as temp where rowNum > '+Cast((@pageNo - 1) * @pageSize as Nvarchar)+' and rowNum<='+Cast(@pageNo*@pageSize as Nvarchar)

if (@pageNo=1)
begin
set @sql=@sql+ ';select @Num =count(*) from Table1 left join Table2 on Table2.id2=Table1.id1 where 1=1 ' + @Filter ;
EXEC sp_executesql @sql,N'@Num int output',@DataCount output
end
else
begin
exec (@sql)
set @DataCount=0;
end
--print @sql


koukoujiayi 2010-10-27
  • 打赏
  • 举报
回复
多表联合查询的分页存储过程没怎么看到,一般都是单表,
但多表联合,可以先建多表联合的视图,
然后用单表分页存储过程!无需主键

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧