有实现这样功能的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