您的位置:首页 > 其它

查询新闻类别下的每个分类的第二条信息列表的存储过程

2009-11-21 09:54 435 查看
---存储过程(查询每个类别的所有分类第二条数据的前n条不在前num条的信息)
create procedure proc_selectNewsClassTwoInfo
@ParentID int, //新闻父Id
@Num1 int=0, //查询的前几条
@Num2 int=0 //不在几条的,比如:查询5-9条,则参数为4
as
declare @sql nvarchar(1000) //sql语句
declare @sqlParm nvarchar(50) //sql参数
begin
set @sql=N'select top '+cast(@Num1 as varchar)+' * from (select top 100 percent d.* from dbo.VIEW_news_class_all d inner join
(select top 100 percent C.class_name,min(C.news_addtime) as data,min(id) as id from
(select top 100 percent * from VIEW_news_class_all A
where A.id in
(select top 2 max(B.id) from VIEW_news_class_all B
where class_id=A.class_id and class_parent=@parent
group by news_addtime
order by news_addtime desc)) C group by C.class_name) e
on d.id=e.id order by d.news_addtime desc) f where f.id not in (
select top '+cast(@Num2 as varchar)+' d.id from dbo.VIEW_news_class_all d inner join
(select top 100 percent C.class_name,min(C.news_addtime) as data,min(id) as id from
(select top 100 percent * from VIEW_news_class_all A
where A.id in
(select top 2 max(B.id) from VIEW_news_class_all B
where class_id=A.class_id and class_parent=@parent
group by news_addtime
order by news_addtime desc)) C group by C.class_name) e
on d.id=e.id order by news_addtime desc)'
set @sqlParm=N'@parent int'
execute sp_executesql @sql,@sqlParm,@parent=@ParentID
end

go

----执行存储过程 ,传入3个参数,一个父id,一个是前几条,一个是不在前几条的

exec proc_selectNewsClassTwoInfo @ParentID=14,@Num1=10,@Num2=0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: