rownum=1 无法得到第一条记录

[复制链接]
查看11 | 回复9 | 2006-10-19 22:45:48 | 显示全部楼层 |阅读模式
请教大虾:

我往一个临时表(会话级)添加数据,使用select .....where rownum=1 可以得到第一条记录
使用DELETE from .....后,commit
我重复添加数据,但这次select .....where rownum=1 不能得到第一条记录
为什么?(得到第三条数据)

谢谢!
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
是说物理记录的第一条吗?
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
看看它们的ROWID
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
首先表示谢谢。
这里不是说物理记录,一开始的时候rownum=1还可以得到第一条记录(正常),当我DELETE数据,COMMIT后,重新插入新数据,再来查询的时候rownum=1就得不到第一条记录了,为什么?
怎么样才能重新得到第一条记录?

原帖由 mydear 于 2008-6-3 07:47 发表
是说物理记录的第一条吗?

回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
里边没数据?
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
你按什么排序的啊
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
很簡單,因為你做delete的時候把最前面的兩條記錄刪除了.所以再次用rownum的時候第一條就變成第三條.
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
先谢谢楼上各位。
首先,我插入数据的时候是循环插入数据。
其次,我是删除所有数据重新插入。
最后,我的查询语句没有order by,只有简单的select .... from table where rownum=1。

是什么原因造成我的新数据查询出错?是因为我commit吗?
我应该怎么做?

原帖由 M.J.Young 于 2008-6-3 10:21 发表
很簡單,因為你做delete的時候把最前面的兩條記錄刪除了.所以再次用rownum的時候第一條就變成第三條.

回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
加个order by 排序,你那样插入顺序不好控制。。。
回复

使用道具 举报

千问 | 2006-10-19 22:45:48 | 显示全部楼层
rownum <2是第一条,但是不保证你想要的哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行