Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de syntaxe MySQL vers Oracle (limite/décalage/mise à jour)

Il semble que l'analyseur n'aime pas cela, malgré le fait qu'il soit syntaxiquement correct. Probablement que les deux clauses imbriquées et ordonnées l'aveuglent d'une manière ou d'une autre. Je l'ai reproduit.

Vous pouvez utiliser une fonction analytique :

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