sybase 中怎样查询 数据表中的m到n条记录?用一条sql(可以嵌套子查询)

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:06:42
sybase 中怎样查询 数据表中的m到n条记录?用一条sql(可以嵌套子查询)
比如 查询符合条件的 数据中的300-500条记录。
我要的是:我找到了 x条符合要求的记录(不是按主键排序) 取其中的m-n条记录, m和n 是行号 而不是 某一字段 .另外必须是sybase中可执行的 oracle和sql server的不需要
可以理解成 无主键的表 我要取 行号m开始到行号n结束的 记录 根任何一个字段一点关系都没有 类似 oracle 里 rowid 的作用 现在的结果都不是我想要的
我上面的说明可能不够明白 在补充下
表例: create table test{ ziduan int }
ziduan
2
5
3
6
7
1
9
4

我要取3-6条记录 不排序情况下出的结果应该是 select * from test where (m-n):
3
6
7
1
排序的情况下出的结果应该是 select * from test where (m-n) order by ziduan
3
4
5
6

sybase 和 sql server 以及oracle 还是有较大区别的 请给出我 sybase 的语句

如果你的查询结果是按某字段固定排序的(记录在表中的序号是固定的),可以用二楼的方法,不过应该写成:
select top n-m * from 表 where 主键 not in (select top m 主键 from 表)

这才是从m+1至n行的记录,二楼写的是从m+1开始的n行记录

select * from table where 字段 between m and n

select top n * from 表 where 主键 not in (select top m 主键 from 表)