当前位置: 代码迷 >> Oracle开发 >> 怎么更新这样的SQL
  详细解决方案

怎么更新这样的SQL

热度:63   发布时间:2016-04-24 06:29:50.0
如何更新这样的SQL?
select cldw from ( select cldw from ABC where a ='320000664223099'  and hjdm='ZZ15' order by lcbh desc) where rownum<2
以上语句查出唯一一条记录。现在想写一个SQL更新这条记录的cldw

update ( select cldw from ABC where a='320000664223099'  and hjdm='ZZ15' order by lcbh desc) a 
 set a.cldw='XXXXXX'  
 where rownum<2
这样写,会报ORA-01732 此视图的数据操纵操作非法的错误。
请问怎么通过一条SQL更新这样的情况的语句呢?
------解决思路----------------------
update abc
   set cldw = 'XXXXXX'
  where (a,hjdm,lcbh) = ( select distinct a, hjdm, first_value(lcbh) over(order by lcbh desc) from abc                         
                                         where a ='320000664223099' and hjdm='ZZ15' )
  相关解决方案