如果表中的ID是按顺序排的那很简单,相信大家都知道怎么写。
现在问题是表中的ID有些已经被删除了,并不连贯,所以要查询第N条数据就有些麻烦,习惯的sql写法是这样:
select top 1 * from
(
select top N * from testExam order by id desc
) a
应该是简洁明了的写法,效率应该也很高,今天发现了另外一种写法,感觉也挺好的
SELECT * FROM
(
SELECT *,
(SELECT COUNT(*) FROM testExam WHERE id< w.id) AS c
FROM testExam AS w
) as a
where c=N
中间这一段SELECT COUNT(*) FROM testExam WHERE id< w.id比较妙,它其实是给表添加了一列C并从0开始重新排序,这样表就变成按顺序排列,查询就很方便了