Mysql
 sql >> Database >  >> RDS >> Mysql

Errore di sintassi da MySQL a Oracle (limite/offset/aggiornamento)

Sembra che al parser non piaccia, nonostante sia sintatticamente corretto. Probabilmente le due clausole embricate e ordinate lo stanno in qualche modo accecando. L'ho riprodotto.

Puoi usare una funzione analitica:

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