查询新闻类别下的每个分类的第二条信息列表的存储过程
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
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
相关文章推荐
- sql 以类别分类,查询出前几名的信息
- SQL查询所有新闻分类且关联出每个分类下的最新的一条新闻
- 查询相册里的照片,每个分类只显示4条信息(经典SQL)
- 获取信息列表中每个类别下的最新一条记录的 SQL语句
- SQL(收藏)查询每个部门工资前三名的员工信息
- 读取SQLServer数据库存储过程列表及参数信息
- hadoop邮件列表信息查询
- SQLServer 查询数据库每个表占用空间的存储过程
- kibana中信息分类查询显示的方法
- SQL查询包括本级分类的无限级分类列表
- MVC3学习第九章 葵花点穴手之势如闪电----MVC3下实现用户信息的查询以及通过实体模型建立商品和类别的主外键关系
- 查询每个部门最低工资的雇员信息
- sql查询每个班上成绩最高的学生信息
- Sql 查询每个年级中,年龄最大的两个学生信息。。。
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- Mysql查询满足多个类别的产品列表
- 使用ul,添加新闻信息列表
- 如何查询每个用户的第二条记录
- 读取SQLServer数据库存储过程列表及参数信息
- asp.net中Repeater嵌套绑定的方法(查询新闻类别和新闻类别下的新闻) .