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' )