Oracle select * and rownum

问题描述:

习惯了MS Sqlserver的SELECT * 的写法,在Oracle中跟rownum一起写时,

如: SELECT rownum,* FROM   EMP,却提示下面这样的错误:

ORA-00936: 缺失表达式
00936. 00000 -  "missing expression"

解决办法:

Select e.*
FROM (Select e.*, rownum as row_id
      from (Select *
            FROM emp
            ORDER BY ename
           ) e
     ) e
Where row_id >= ((?-1)*?)+1 and row_id <= (?*?);

参考:http://stackoverflow.com/questions/28501988/oracle-select-and-rownum

时间: 2024-12-31 09:14:53

Oracle select * and rownum的相关文章

在oracle select 的条件后面跟上into是什么意思?

问题描述 在oracle select 的条件后面跟上into是什么意思? select nvl(sum(列1),0) as 别名, nvl(sum(列2),0) as 别名 from T_表名 where 列1 > 12 case 列1 when '1' then ... into 列名n 这里的into代表什么意思,请高手指点,谢谢! 解决方案 into一般有两种使用方法, 一种是将结果赋值给变量,在存储过程或程序块中使用 如: select id into v_id from table1

Oracle中的rownum与DB2中的row_number()over()

问题描述 Oracle中的rownum与DB2中的row_number()over() select rownum , m.* from (select '汇总' as MENUNAMES,count(*) as NUMCOUNT from PEVENTRECORD where (EVENT='CLICK' OR EVENT = 'VIEW') AND TO_CHAR(TRANSTIME,'yyyy-MM-dd') >= '2015-02-02' AND TO_CHAR(TRANSTIME,'y

oracle分页 删除rownum 此列

问题描述 oracle分页 删除rownum 此列 oracle 分页查询 不知道表有多少列的前提下 查询语句 为 SELECT * FROM (SELECT ROWNUM RowNumber,t.* FROM table t WHERE ROWNUM <=100) WHERE RowNumber >=10 查询出来的包含 rownum 这一列 ,如何用sql语句将此列删除掉 解决方案 select b.* from (select rowid rn,rownum from tablename

oracle中的rownum问题

问题描述 oracle中的rownum问题 为什么这样 SELECT * FROM TESTROWNUM T WHERE ROWNUM in (1,2,3,4,5,6,7,8,9) 有结果 这样就没有结果 SELECT * FROM TESTROWNUM T WHERE ROWNUM in (SELECT ROWNUM rn FROM (SELECT ID FROM TESTROWNUM T1 ORDER BY T1.ID ASC) where ROWNUM < 10) 解决方案 SELECT

Oracle中使用Rownum分页详细例子_oracle

在MySQL中,我们通常都使用limit来完成数据集获取的分页操作,而在Oracle数据库中,并没有类似limit一样的方便方法来实现分页,因此我们通常都是直接在SQL语句中完成分页,这里就需要借助于rownum伪列或row_number()函数了,本文将分别展示使用rownum伪列和row_number()分析函数来完成Oracle数据分页操作的具体使用方法,并分析和比较两者的性能优劣. 一.初始化测试数据 首先测试数据我选取了数据字典all_objects表中的70000条数据,创建步骤如下

关于在oracle数据库中用rownum更新字段的值

问题描述 关于在oracle数据库中用rownum更新字段的值 我想通过条件查询,将数据库中的记录排序选择出来,然后根据排序的rownum,将每条记录中的某个字段更新成rownum的值,这样做可以吗?如果可以请问该如何实现? 解决方案 好像是不可以的..... 解决方案二: http://www.2cto.com/database/201302/191874.html 解决方案三: 好像是不可以的.....

【Oracle】-【ROWNUM与索引】-索引对ROWNUM检索的影响

看到ASK TOM的一篇文章,挺有感触的. http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:32812348052 主要问的是ROWNUM的问题.后面的一个讨论提问谈到: select ename, sal from emp where rownum<=10 order by sal desc; 和 select ename, sal from ( select ename, sal from emp order

oracle select执行顺序的详解_oracle

SQL Select语句完整的执行顺序:1.from子句组装来自不同数据源的数据:2.where子句基于指定的条件对记录行进行筛选:3.group by子句将数据划分为多个分组:4.使用聚集函数进行计算:5.使用having子句筛选分组:6.计算所有的表达式:7.使用order by对结果集进行排序. oracle 语句提高查询效率的方法 1:.. where column in(select * from ... where ...); 2:... where exists (select '

oracle的rowid和rownum简介

[ 概要 ] 刚刚接触oracle的同学可能常常会被rowid和rownum这两个词弄混, 弄清楚这两个家伙对于我们写sql会有很大的帮助, 下面偶就抛砖引玉, 简单地谈谈他们之间的区别吧. [ 比较 ] rowid和rownum都是oracle中的伪列, 但他们还是存在本质区别: rowid: 是物理地址, 用于定位数据表中数据的位置, 它是唯一的且不会改变. rownum: 是根据查询的结果集给每行分配的一个逻辑编号, 查询结果不同, rownum自然不同. 对于同一条记录, 查询条件不同,