Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro de sintaxe do MySQL para Oracle (Limite/Deslocamento/Atualização)


Parece que o parser não gosta disso, apesar de estar sintaticamente correto. Provavelmente as duas cláusulas imbricadas e ordenadas o estão cegando de alguma forma. Eu reproduzi isso.

Você pode usar uma função analítica:
update table1 alf
 set nextcontractid = 
     (SELECT min(contractid) keep (dense_rank first order by lasttradedate asc) 
     FROM table1copy alf2
     WHERE alf2.assetid     = alf.assetid
     AND alf2.lasttradedate > alf.lasttradedate
     )
 where alf.complete = 0