sql语句 - 显示一定范围内的记录
日期:2017-06-15
今天遇到了一个问题,最近开发了一个小型论坛,客户有这样一个要求,看题目.
数据库结构如下: 表名:test 字段名:ID,IDVALUE
1. aa
2. bb
3. cc
4. dd
5. ee
6. ff
7. gg
8. hh
9. ii
10.jj
要求显示最后5条记录,但是显示的顺序必须为5,6,7,8,9,10,而不是10,9,8,7,6,5,虽说问题不大,解决方法也很多,但是总要找到最好的解决方式.所以我就找到了如下解决方法:
一条sql语句搞定
以下是代码片段: select top 5 from test where id in(select top 5 from test order by id desc) order by id asc |
嘿嘿,很简单就给解决了!
通过这个问题也能总结出4-10条,5-100条这种限定一定范围内的sql语句的写法:
原理就是select top <末端ID-顶端ID+1> * from <表名> where ID not in(select top <顶端ID-1>) ID from <表名>)
例如:4-10条就应该写成
select top 10-4+1 * from test where id not in(select top 4-1 id from test)