`

rownum使用注意

阅读更多

实验加google

 

第一.rownum是伪列不能用表的别名去引用,如select t.rownum from xx t ;

       报错:列说明无效

       但是我们可以给他别名 rownum rno

 

第二.rownum是从1开始的,所以选择rownum=2的时候选择不出记录的

 

 

第三.rownum的<是默认成立的,但是>是不成立的,要使用>必须要注意两点:

     1).要使用子查询

     2).要给rownum一个别名

 

 

select * from
(
   select rownum rno, t.id, t.province_code, t.province_name from card_province t 
)
where rno>3

 可以选择大于3的记录

 

第四.如果要选择一个区间的记录,也要使用子查询,注意事项同上三的一二

 

 

select * from
(
   select rownum rno, t.id, t.province_code, t.province_name from card_province t where rownum <10
)
where rno>3

 可以选择3到10之间的数据

 

第五.要使用rownum排序也要使用子查询,如:

 

select rownum ,p.province_code,p.province_name from
(
  select t.province_code,t.province_name from card_province t
  group by t.province_code,t.province_name
)p where rownum <10

 这样所有的记录group by后就是按照rownum排序的了

 

当然我们也可以使用row_number()来选择区间数据

select province_code,province_name from
(
   select province_code,province_name ,row_number()over(order by province_code)as rnum from card_province
)
where rnum between 3 and 10
 但是这两者之间的开销呢?

 

rownum分析

 

我们在看row_number()函数的分析

 

很明显同样的3到10的区间选择使用row_number()函数开销更大

分享到:
评论

相关推荐

    oracle中利用关键字rownum查询前20名员工信息及rownum用法

    注意:对 rownum(伪列) 只能使用 &lt; 或 &lt;=, 而用 =, &gt;, &gt;= 都将不能返回任何数据  例:查询工资前20名的员工姓名,工资 ,工资由高到低 Select rownum,first_name,salary from (Select first_name, salary ...

    对于 Oracle 的 rownum 问题

    有了以上从不同方面建立起来的对 rownum 的概念,那我们可以来认识使用 rownum 的几种现像 1. select rownum,c1 from t1 where rownum != 10 为何是返回前9条数据呢?它与 select rownum,c1 from tablename where ...

    Oracle中ROWNUM的使用技巧.docx

    ROWNUM 是一种伪列,它会根据返回记录生成一个序列化的数字。利用ROWNUM,我们可以生产一些原先难以实现的结果输出,但因为它是伪列的这个特殊性,我们在使用时也需要注意一些事项,不要掉入“陷阱”。

    解析oracle的rownum

    详细解析了oracle的rownum,举例说明rownum的使用方法和技巧及要注意的地方。研究在想要查找前N个数据时,如何高效地使用rownum。

    Oracle查询语句中rownum与rowid的不同之处分析

    在查询中,我们可以注意到,类似于 select xx from table where rownum &lt; n&gt;1) 这样的查询是有正确含义的,而 select xx from table where rownum = n 这样的查询只在n=1的时候成立, select xx from table ...

    SQL SELECT TOP, LIMIT, ROWNUM 子句

    SQL SELECT TOP, LIMIT,... MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。 SQL Server / MS Access 语法 SELECT TOP number|percent column_name(s) FROM table_name; MySQL 语法 SEL

    上海部分公司面试题目和Java技巧

    注意:请大家分析一下一下语句为什么不对: SQL&gt; select rownum, last_name, salary 2 from s_emp 3 where rownum 4 order by salary desc; ROWNUM LAST_NAME SALARY ---------- -----------------------...

    asp.net使用oracle分页存储过程查询数据

    注意:查询sql语句中必须包含rownum字段,别名是rn。rownum是Oracle关键字。 存储是来自http://blog.csdn.net/pharaohsprince/archive/2006/04/12/660800.aspx。 对存储过程做了简单的修改方法程序的调用。 效率...

    Oracle查询总结与优化

    procedure sp_Page(p_PageSize int, --每页记录数 p_PageNo int, --当前页码,从 1 开始 ... --注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rn OPEN p_OutCursor FOR v_sql; end sp_Page;

    merge_row_count:一个简单的实用程序,允许对由 Oracle 中的合并操作插入更新删除的行进行计数

    请注意,使用该实用程序对处理的数据进行计数将对合并操作的性能产生轻微但负面的影响。 这是由于 SQL - PL/SQL 上下文切换的开销的事实。 使用示例 示例设置 CREATE TABLE emp (id INTEGER PRIMARY KEY , first_...

    Oracle数据库、SQL

    1.16课程中使用的5个表 3 二、 select from语句 5 2.1 select语句功能 5 2.2 select语句基本语法 5 2.3列别名 5 2.4算术表达式 5 2.5空值null的处理 5 2.6 nvl(p1,p2)函数 5 2.7拼接运算符 || 6 2.8文字字符串 6 2.9...

    ORACLE 常用sql专题讲解

    ORACLE里面比如行列转化、merge into、case、rownum、分析函数。都是比较常用,但是大家可能没有很注意的细节地方。尤其是面试的时候可能会经常考到

    2009达内SQL学习笔记

    通配符在搜索模式中任意位置使用,并且可以使用多个通配符。 通配符%表示任何字符出现任意次数;还能代表搜索模式中给定位置的0个或多个字符。下划线匹配单个任意字符。 如:select table_name from user_tables ...

    简单的ADO.net数据访问客户端

    注意:使用匿名对象作为模板查询时,匿名对象的字段名称需和查询结果的字段名称完全匹配,不支持模糊匹配。 Indexing扩展 在Data.Indexing命名空间的IndexingExtension类中,定义了另外一套IDbClient的扩展方法,...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    mssql 微软 只能能运行在windows平台,体积比较庞大,占用许多系统资源, 但使用很方便,支持命令和图形化管理,收费。 中型企业 Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,...

    delphi向word写入数据

    //将剪贴板中的图片复制出来,注意添加Clipbrd单元 ChooseWD.Sentences.Last.Paste;//在WORD中粘贴图片 9.在界面中显示WORD文档 ChooseWA.Visible:=true; 10.断开与WORD的链接 ChooseWA.Disconnect; ChooseWD....

    12C SQL方面新特性小结

    注意,只有一种类型的索引是在给定时间可用的。  翻页查询  之前版本中需要借用ROWNUM对查询结果设置“标号”实现分页查询  12c中引入OFFSET 和 FETCH 实现快捷分页方式  不可见字段  在之前的...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    注意这里已经默认将其加入到了我们刚建的工程中了。 6.如下图,在mydlg.ui 中拖入一个Push Button,将其上的文本改为“进入主 窗口”,在其属性窗口中将其objectName 改为enterBtn,在下面的Signals and slots ...

    Oracle事例

    select * from ( select rownum row_id,b.* from (select a.* from sys_oper a) b ) where row_id between 15 and 20 15、对公共授予访问权 grant select on 表名 to public; create public synonym 同义词名 ...

    springmybatis

    查询出列表,也就是返回list, 在我们这个例子中也就是 List&lt;User&gt; , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...

Global site tag (gtag.js) - Google Analytics