首页 新闻 搜索 专区 学院

在数据库中,如何查询表中的一段数据(如编号为30-40的数据),注意ID号不一定是连续的,谢谢各位

0
悬赏园豆:40 [已解决问题] 解决于 2010-06-16 18:16

 

注意ID号不一定是连续的

IT风云的主页 IT风云 | 初学一级 | 园豆:80
提问于:2010-06-04 15:44
< >
分享
最佳答案
0

不知为何搞那么复杂,以数据库pubs为例

select * from jobs where job_ID !<3 and job_ID!>10

得到结果

我理解的题目意思是ID30-40虽然不连续,但是应该还是从小到大的吧?比如30、34、36、37、40

收获园豆:40
chocol@te | 菜鸟二级 |园豆:325 | 2010-06-12 17:47
其他回答(5)
0

select top 10 * from table where ID not in (select top 30 ID from table) order by ID

天天不在 | 园豆:926 (小虾三级) | 2010-06-04 15:59
0

2005之后的rownumber函数

Gray Zhang | 园豆:17610 (专家六级) | 2010-06-04 16:04
0

不是有大于小于符号吗

Astar | 园豆:40805 (高人七级) | 2010-06-04 16:39
恩,看来咱俩理解的一样哈
支持(0) 反对(0) chocol@te | 园豆:325 (菜鸟二级) | 2010-06-12 17:48
0

1、select top 10 * from table where ID not in (select top 30 ID from table) order by ID

2、select row_number() over(order by ID) as ID form table where ID

第二个只能在SQl2005以上版本才可以, 建议用第二个方法, 简单方便快速

风浪 | 园豆:2866 (老鸟四级) | 2010-06-04 16:52
1

我是个还在校的初学者,而且也不是计算机专业的,前几天老师给出了样同样的题,我补充一种我知道的方法吧,若觉得不好的人可以直接忽略,呵呵!

select top 10 * from ( select top 40 * from table ) as temp_table order by ID desc

(本语句思路:取出前40条记录后倒序排列,所需的30~40就到了临时记录集的头十条,不足的地方有最后结果是倒序的,再次嵌套这种形式把它改回正序,但是如此一来句子就很长了)

KBTyanhuo | 园豆:205 (菜鸟二级) | 2010-06-04 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册