+ -
当前位置:首页 → 问答吧 → update oracle 不能order by?

update oracle 不能order by?

时间:2008-10-31

来源:互联网

大家好 我想实现的是有个表a
字段 state createdate

里面有很多数据 我想修改按照createdate 排序的前100条记录的 state
update table a set state='1' wherr rownum<100 order by createdate

这条肯定通不过的 该怎么实现? 请教ing 先谢大家了

作者: meteor007007   发布时间: 2008-10-31

order by 只对最后的结果操作
SQL code

--试下
update (select * from table where rownum<100 order by createdate) tt set tt.state='1'

作者: YY_MM_DD   发布时间: 2008-10-31

update 語句不能與order by 語句一起使用
前100條記錄用語句 
update table a set state='1' wherr rownum <100
已經足夠

作者: hdhai9451   发布时间: 2008-10-31

update emp
set deptno=10
where empno in(select empno from(select empno,row_number()over(order by empno)rn from emp)where rn<5);


行不行回个话.

作者: guolin_cai   发布时间: 2008-10-31


SQL code
/--try it:

update table a set state='1' where  rownum in (select 1 from (select rownum  r from a  order by createdate) t where t.r<100); 




引用楼主 meteor007007 的帖子:
大家好 我想实现的是有个表a
字段 state createdate

里面有很多数据 我想修改按照createdate 排序的前100条记录的 state
update table a set state='1' wherr rownum <100 order by createdate

这条肯定通不过的 该怎么实现? 请教ing 先谢大家了

作者: BlueskyWide   发布时间: 2008-10-31

支持三楼
update table a set state='1' 
where Rowid in(select Rowid from(select Rowid,row_number()over(order by createdate )rn from table)where rn <101);

作者: caoleione   发布时间: 2008-10-31

这也行,学习了

作者: goeasy2005   发布时间: 2008-11-17

这也行,学习了

作者: goeasy2005   发布时间: 2008-11-17

order by createdate 

加上沒有意義

作者: roy_88   发布时间: 2008-11-17

3楼和5楼的可以

作者: merrill   发布时间: 2008-11-17

3楼和5楼的可以

作者: merrill   发布时间: 2008-11-17

学习了,3楼可以

作者: csh_xxx   发布时间: 2011-12-09