sql >> Databasteknik >  >> RDS >> Mysql

MySQL till Oracle-syntaxfel (gräns/offset/uppdatering)

Det verkar som om parsern inte gillar det, trots att den är sintaktisk korrekt. Förmodligen förblindar de två omvandlade och ordnade klausulerna honom på något sätt. Jag återgav det.

Du kan använda en analytisk funktion:

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


  1. Välja alla poster med SQL LIMIT och OFFSET-fråga

  2. välja rader som har förekommit mer än tre gånger

  3. 10 användbara tips om MySQL-prestandajustering

  4. Fixa "ERROR 1222 (21000):De använda SELECT-satserna har ett annat antal kolumner" när du använder UNION i MariaDB