日期:2014-05-19  浏览次数:20523 次

有实现这样功能的sql语句么???
table1表里有60条记录
1
2
4
7
.
.
.
80     id从小到大   但不是连续的

我要检索其中的10条   条件是   (大于等于20     并且按   降序排列   id是最接近20的那些)
就是这些的记录   这样排
40
38
37
33
32
29
27
25
24
20

我写了这样的   select   top   10   *   from   table1   where   id> =20   order   by   id   desc
可是这样检索出来的记录是从最大的开始的   不是最接近20的那10条
如果有   select   bottom   10   *   from   table1   where   id> =20     order   by   id   desc就可以了   但没这样的sql语句。
谁能告诉我怎么写么?我在分页的时候用到的


------解决方案--------------------
select * from table1 where id in
(Select top 10 id from Table1 where id > = 20 order by id)
order by id desc
------解决方案--------------------
和恐龙差不多,

SELECT *
FROM (SELECT TOP (10) * FROM Table1 WHERE (ID > = 20) ORDER BY ID) AS x
ORDER BY ID DESC