用一条语句,删除Oracle中分页查出来的很多条记录,该怎么写?

id是有重复的,而rownum是唯一的(图中简称RM),上图的sql语句如下:selectt2.*from(selectrownumrm,t1.id,t1.namefro... id 是有重复的, 而rownum是唯一的(图中简称RM),
上图的sql语句如下:
select t2.* from (select rownum rm,t1.id,t1.name from tab t1 where rownum<=18) t2 where t2.rm >=12;

这样写也可以,但是还有没有其他的方法呢?
delete from tab where rownum>=0 and rownum<=3;
展开
 我来答
millerrch
2012-12-26 · TA获得超过357个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:212万
展开全部
查出来的数据有主键么?有的话delete from tab_name 后面的where条件把查出来的部分用In查询就好了啊
更多追问追答
追问
这样写的话会删除表中所有的记录,where 后面的条件几乎没有作用,
我安装的是oracle 10g的.
追答
你的数据是没有唯一主键的是这个意思么?必须得通过数据的行号来进行删除?没试过用rownum删除数据··· 只用这个做过分页查询···
这样行么
delete from (这里面把你进行数据查询和获得行号的select语句写进来,但是这里面只为了取行号,然后和本来的表拼成一个虚表),然后在外面用行号的范围来进行删除?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6a08070
2012-12-27
知道答主
回答量:37
采纳率:0%
帮助的人:12.9万
展开全部
select t2.* from (select rownum rm,t1.id,t1.name from tab t1 where rownum<=18) t2 where t2.rm >=12 for update
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liusenqun
2012-12-26 · 超过31用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:69.8万
展开全部
说得太笼统了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z_enoch
2012-12-26
知道答主
回答量:43
采纳率:0%
帮助的人:15.7万
展开全部
delete from tablename where id < x and id > y;????????
追问
这个方法我知道,问题是,这张表的id有不是有序的,比喻说: id 有1,3,6,8,10,25....等等。
追答
那只能一个一个添加条件了,或者看一下这些数字有什么特点,就是数学问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式