密室之失踪人口:Oracle查询中十分诡异的现象

问题描述

第一段代码查询出9条数据select userid as 编号, username as 用户名, password as 密码, createdate as 创建日期, email as 电子邮箱 from (select t.userid, t.username, t.email, t.createdate, t.password from o_user t order by t.createdate desc) where rownum < 10;但是第二段代码查询出10条 userid=4的一条失踪了 太可怕了 select * from o_user t;

解决方案

总共有10条记录1.select userid as 编号, 2. username as 用户名, 3. password as 密码, 4. createdate as 创建日期, 5. email as 电子邮箱 6. from (select t.userid, t.username, t.email, t.createdate, t.password 7. from o_user t 8. order by t.createdate desc) 9. where rownum < 10; 这里rownum<10,那肯定会少一条(查的是1-9条的记录),由于是根据日期倒叙查询,(order by t.createdate desc),那肯定是userid=4的那一条记录的时间最早,也就是说排在第10条,所以第10条也就是是userid=4的那一条记录没有查询出来。
解决方案二:
楼上正解,和楼主一样粗心啊,是小于10,不是小于等于10,出来的肯定只有9条数据啦
解决方案三:
额。。。你确定都显示了吗?上面那个绿色的箭头点过了吗?

时间: 2024-11-01 08:50:49

密室之失踪人口:Oracle查询中十分诡异的现象的相关文章

oracle查询中怎么实现这样的功能

问题描述 我把剩下的图片也截出来 解决方案 本帖最后由 whicumen 于 2012-03-28 11:08:39 编辑解决方案二:没说清楚呀?解决方案三:引用楼主的回复: 我把剩下的图片也截出来 有邮箱不,我把整个图片发到你邮箱里解决方案四:siyunianhua@qq.com直接发到论坛上也一样啊解决方案五:你的结贴率太低

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

本文主要是以实例形式介绍了Oracle查询中rownum与rowid的不同之处,以及以假设的方式为例,查询条件为rownum = 2,在查询出第一条记录时的具体内容的介绍. 在查询中,我们可以注意到,类似于 select xx from table where rownum < n (n>1) 这样的查询是有正确含义的,而 select xx from table where rownum = n 这样的查询只在n=1的时候成立, select xx from table where rown

oracle 查询问题,???????

问题描述 oracle 查询问题,??????? 现在有一张表A,表中ID字段类型为char(32),现在有一条记录,ID内容为"1111",现在对该条记录查询,代码如下: PreparedStatment statment = conn.prepareStatement("SELECT * FROM A WHERE ID='1111'"); 这样可以查找到该条记录. 但是,如果使用下面方式: PreparedStatment statment = conn.pre

如何在查询oracle列表中使用PRIOR操作

对于树形查询中的PRIOR操作,一般都是用在CONNECT BY语句中,而这个PRIOR操作其实在SELECT的字段列表中也是可以使用的. 看一个简单的例子: SQL> create table t (id number, parent_id number, name varchar2(30)); Table created. SQL> insert into t values (1, null, 'a'); 1 row created. SQL> insert into t value

找到Oracle数据库中性能最差的查询语句

"V$SQLAREA"和" V$SQL"是非常有用的视图,在其中你可以查找发现执行效率最差的需要优化的SQL语句."DISK_READS"列的值表示在系统中执行该语句读取的磁盘量. 这个与执行(DISK_READS/EXECUTIONS)相结合,返回每个语句执行实现最佳磁盘命中率的SQL 语句.排在这个列表中最上方的任何语句都最可能是有问题的查询,需要进行优化.AWR报告或者Statspack报告也列出了资源密集的查询. 下面的查询语句可以用来查

Oracle 10g中的闪回查询操作实例

与Oracle 9i相比Oracle 10g的Flashback有了非常大的改进,在Orcle 10g之前,SMON_SCN_TIME由SMON来获取和记录信息的,每5分钟记录一次,从Oracle 10g开始,LGWR首先会在SGA中记录SCN与时间的映射关系(由于LGWR至少每3秒就会被激活一次,所以现在SMON_SCN_TIME能够支持大于3秒的闪回),SMON则定期检查SGA是否内存中的映射大于磁盘上的,如果有就刷新纪录到磁盘, 而且从普通的Flashback Query发展到了多种形式,

Oracle 9i中的一个闪回查询操作实例

在利用闪回功能前需要确认: 1.用户有对dbms_flashback包有执行权限! 2.进行闪回查询必须设置自动回滚段管理,在init.ora设置参数UNDO_MANAGEMENT=AUTO,参数UNDO_RETENTION=n,决定了能往前闪回的最大时间,值越大就需要越多Undo空间. Oracle 9i中闪回查询操作实例 查看Oracle中Delete和Commit操作的流程分析 例:Oracle 9i的Flashback Query操作. (1)创建闪回查询用户 SQL> create u

如何解决Oracle分页查询中排序与效率问题

本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题. 原始未分页查询Sql代码如下: select ROWNUM rn, t.id ID, o.name YYB,u.name XM, t.MC from tZDYSX t,tuser u,lborganization o where t.cjr=u.id and u.orgid=o.orgcode and t.gx = 1 order by ID 结果如下: RN  I

oracle学习(六) 表查询中需要注意的一些问题

1.当在select语句中,同时使用where.group by和having子句时,它们的作用和执行顺序如下: (1)where用于筛选由from指定的数据对象 (2)group by用于对where的结果进行分组 (3)having用于对group by分组后的数据进行过滤 2.count(*)与count(columnName|columnIndex)的区别: count(*)会统计表中的null计算在内,而count(columnName|columnIndex)会忽略对应字段的null