iteye_21104 2011-11-30 15:14
浏览 222
已采纳

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

第一段代码查询出9条数据
[code="sql"]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;[/code][img]http://dl.iteye.com/upload/picture/pic/103620/31c33ca9-6bfa-305e-ba80-f9b0796f9829.png[/img]

但是第二段代码查询出10条 userid=4的一条失踪了 太可怕了
[code="sql"] select * from o_user t;[/code][img]http://dl.iteye.com/upload/picture/pic/103622/c21ef5d6-892e-3b6a-9e67-112a20676701.png[/img]

  • 写回答

3条回答 默认 最新

  • lbinzhang 2011-11-30 15:22
    关注

    总共有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的那一条记录没有查询出来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?