方案一
select * from(
select row_number() over(partition by classid order by id desc)as rowindex,*
from FrameWork_Soft) a
where rowindex<2
这个解决方案的关键就是使用了SQL 2005 的 ROW_NUMBER 这个全新的函数。
ROW_NUMBER ( ) 函数的语法如下:
ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] <order_by_clause> )
OVER 子句中的 PARTITION BY 将结果集分为多个分区。
OVER 子句中的 ORDER BY 将对 ROW_NUMBER 进行排序。
方案二
select *
from FrameWork_Soft t
where id in(select top 1 id from FrameWork_Soft
where classid=t.classid
order by id desc)