关于sql语句,取出x行到y行的记录,语句怎么写啊?

elex 2003-12-21 01:42:35
如题,x,y为指定整数,oracle数据库
...全文
68 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dearmyfriend 2003-12-21
  • 打赏
  • 举报
回复
select * from tablename where rownum<(y-x) and rowid not in (select rowid from tablename where rownum<x)
dearmyfriend 2003-12-21
  • 打赏
  • 举报
回复
对不起,上面是SQL Server的
在Oracle中好像不支持Top.好想用rownum、rowid吧,
应该是
select * from tablename where rownum=(y-x) and rowid not in (select rowid from tablename where rownum=x)没有测试过,不知对不对。
dearmyfriend 2003-12-21
  • 打赏
  • 举报
回复
一个比较笨的方法但很实用。
select top (y-x) * from tablename where id not in (select top x id from tablename)
这里ID是tablename表中的一个主键。
patchclass 2003-12-21
  • 打赏
  • 举报
回复
一定支持fetch什么的吧,就用这个
实在不行用存储过程
whb147 2003-12-21
  • 打赏
  • 举报
回复
有一种叫游标的什么东西,好像可以实现,不过我没有用过。
flying310 2003-12-21
  • 打赏
  • 举报
回复
select * from tablename where id >x and id<y
elex 2003-12-21
  • 打赏
  • 举报
回复
to possible_Y(一切皆可能)(西南交大)

oracle中不支持select top 2 * from table_name这样的语句啊
possible_Y 2003-12-21
  • 打赏
  • 举报
回复
select top 2 * from table_name where id<5 order by id desc
elex 2003-12-21
  • 打赏
  • 举报
回复
如果数据库记录为:
1
2
3
4
5
知道5,怎么取出小于5的两条记录3和4,而不是1,2
aoenzh 2003-12-21
  • 打赏
  • 举报
回复
如果是MY SQL就好了
用limit
ceocio 2003-12-21
  • 打赏
  • 举报
回复
无所谓,你可以换成其他字段也可以
bzscs 2003-12-21
  • 打赏
  • 举报
回复
数据库系统不能从规定哪行到哪行这样的位置关系来取数据的呀,每行必须有能唯一标识自己的列
kissdavid 2003-12-21
  • 打赏
  • 举报
回复
select * from (select rownum r,empno,ename,job from emp) a where a.r>10 and a.r<20
pimple 2003-12-21
  • 打赏
  • 举报
回复
如果用ID估计不会准确,如果50-100之间的记录删除的有,这样取出的就不准确了.

aojiankd 2003-12-21
  • 打赏
  • 举报
回复
id 是自动编号吧
snowcloud2002 2003-12-21
  • 打赏
  • 举报
回复
学习
elex 2003-12-21
  • 打赏
  • 举报
回复
to ceocio(MS MVP)(西南交大)

id 是表中的字段吗,是不是对数据库有特殊的要求啊?
ceocio 2003-12-21
  • 打赏
  • 举报
回复
select * from tablename where id between 50 and 100

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧