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

从结果集中掏出 最后20条记录

2011-12-26 
从结果集中取出 最后20条记录 我的意图是:按时间大-- 小排序得到结果集(如果时间相同就按照ID大-- 小排

从结果集中取出 最后20条记录

我的意图是:
按时间   大--> 小   排序得到结果集(如果时间相同就按照ID   大--> 小   排序)。取出最后20条记录


下面两个方法是测试是正确的。
我想问问这两个写法是否完全一样?第二方法在子查询中加了ArticleId   DESC,会有不同吗??   我担心我的测试用例不够好,问问大家。


SELECT   *   FROM   (SELECT   TOP   20   *   FROM   Article   ORDER   BY   AddTime   ASC)   T     ORDER   BY   AddTime   DESC,ArticleId   DESC


SELECT   *   FROM   (SELECT   TOP   20   *   FROM   Article   ORDER   BY   AddTime   ASC,ArticleId   DESC)   T     ORDER   BY   AddTime   DESC,ArticleId   DESC




[解决办法]
如何从表中用SELECT语句提取最后10条数据呢?
declare @num as int
select @num = count(*) from authors
set @num = @num - 20

declare @sql as varchar(200)
set @sql = 'select * from authors where au_id not in (select top ' + cast(@num as char) + ' au_id from authors) '
exec (@sql)

热点排行