如题:要创建一个存储过程:
表A: 字段有:id,names,date,typeID(类别ID)
当然这里,也就不说出类别的字段了。只要知道typeID引用的type表中的主键。
那这个存储过程的要求如下:
需要在一个页面中获取typeID=1,2,3的三种不同的信息各10条。比如就说是新闻吧。
typeID=1:原创新闻
typeID=2:转载新闻
typeID=3:时事新闻
那么页面上需要的就是,着三类新闻个十条。至于显示方式就不管了。
存储过程的写法呢?
一条存储过程,@typeID作为参数?这样的话,是不是需要ADO.NET需要在数据库中进行三次查询?
那能不能,一次性将这十条数据都查询出来,同时再根据新闻的发表日期倒序排列呢?
答案是:可以的。
ALTER procedure SelectAllInfo
As
select top 10 row_number() over(order by date desc) as id,N_ID,
id,
names from A where typeID=1
union all
select top 10 row_number() over(order by date desc) as id,N_ID,
id,
names from A where typeID=2
union all
select top 10 row_number() over(order by date desc) as id,N_ID,
id,
names from A where typeID=3