首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一SQL语句优化`该怎么解决

2012-01-10 
求一SQL语句优化```我表sub中有一个类别字段sortid,有个日期字段lastback,我现在想取每个类别的最新5条数

求一SQL语句优化```
我表sub中有一个类别字段sortid,有个日期字段lastback,我现在想取每个类别的最新5条数据。然后再取前20条。
select   top   20   *   from   (
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=1  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=2  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=3  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=4  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=5  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=6  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=7  
union   all  
select   top   5   *   from   sub   where   isnull(isback,1)=0   and   sortid=9)   a  
order   by   lastback   desc
但目前这方法好象太太太笨了。   。所以想优化一下。。请教高手。谢谢`!

[解决办法]
select * from sub a where priamyKey in(select top 5 priamyKey from sub where sortid=a.sortid order by lastback desc)
order by sortid

priamyKey为主键.

热点排行