Discuz教程网

oracle中如何查询出前n到m条记录?

[复制链接]
authicon 半路出家 发表于 2010-10-26 08:23:37 | 显示全部楼层 |阅读模式

要创建一个视图提供给用户,查询数据。这个视图是多个表关联查询后的数据。
现在想取出前n到m条数据。要怎么实现?
是不是必须要一个索引键?然后只能判断这个索引键在哪一个区段?(为了分批查数据,减小数据库开销)



上一篇:想在沈阳举办一个CU坛友会。想了解一下,看看人气。沈阳及辽宁可以来的朋友先跟帖子。
下一篇:oracle awr 报告如何分析
authicon renxiao2003 发表于 2010-10-26 08:43:10 | 显示全部楼层

rownum。
authicon tacsoft 发表于 2010-10-26 10:29:15 | 显示全部楼层

本帖最后由 tacsoft 于 2010-10-17 22:34 编辑
我觉得简单查询语句就可以实现:
创建一个测试表,有7个字段。
SQL> create table numtable(
  2  colnum1 number(2,0),
  3  colnum2 number(2,0),
  4  colnum3 number(2,0),
  5  colnum4 number(2,0),
  6  colnum5 number(2,0),
  7  colnum6 number(2,0),
  8  colnum7 number(2,0)
  9  );
Table created.
插入7行数据
SQL> insert into numtable values(11,12,13,14,15,16,17);
SQL> insert into numtable values(21,22,23,24,25,26,27);
SQL> insert into numtable values(31,32,33,34,35,36,37);
SQL> insert into numtable values(41,42,43,44,45,46,47);
SQL> insert into numtable values(51,52,53,54,55,56,57);
SQL> insert into numtable values(61,62,63,64,65,66,67);
SQL> insert into numtable values(71,72,73,74,75,76,77);
现在查询第2-4条记录的第2到3列的,这个查询不仅查到m到n条记录,而且还加上了只查该条记录的第2-3个字段。
SQL> select colnum2,colnum3 from numtable where colnum1 in (21,31,41);
   COLNUM2    COLNUM3
---------- ----------
        22         23
        32         33
        42         43
即使有多表关联关系这个要求也容易实现,这是查询的基本功能。
假设使用视图,该视图属于复杂视图,它可以从多个基表中检索数据,使用Gruop by或distinct子句对行分组。可以包含函数调用。
authicon duolanshizhe 发表于 2010-10-26 11:54:01 | 显示全部楼层

rownum+两层select就可以搞定了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 20:08

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表