不知为何搞那么复杂,以数据库pubs为例
select * from jobs where job_ID !<3 and job_ID!>10
得到结果
我理解的题目意思是ID30-40虽然不连续,但是应该还是从小到大的吧?比如30、34、36、37、40
select top 10 * from table where ID not in (select top 30 ID from table) order by ID
2005之后的rownumber函数
不是有大于小于符号吗
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以上版本才可以, 建议用第二个方法, 简单方便快速
我是个还在校的初学者,而且也不是计算机专业的,前几天老师给出了样同样的题,我补充一种我知道的方法吧,若觉得不好的人可以直接忽略,呵呵!
select top 10 * from ( select top 40 * from table ) as temp_table order by ID desc
(本语句思路:取出前40条记录后倒序排列,所需的30~40就到了临时记录集的头十条,不足的地方有最后结果是倒序的,再次嵌套这种形式把它改回正序,但是如此一来句子就很长了)