sql >> Base de Datos >  >> RDS >> Mysql

Error de sintaxis de MySQL a Oracle (límite/compensación/actualización)

Parece que al analizador no le gusta eso, a pesar de que es sintácticamente correcto. Probablemente la cláusula de dos imbricados y ordenados lo está cegando de alguna manera. Reproduje eso.

Puede utilizar una función 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