sql >> Database teknologi >  >> RDS >> Oracle

Opdater erklæring med indre joinforbindelse på Oracle

Den syntaks er ikke gyldig i Oracle. Du kan gøre dette:

UPDATE table1 SET table1.value = (SELECT table2.CODE
                                  FROM table2 
                                  WHERE table1.value = table2.DESC)
WHERE table1.UPDATETYPE='blah'
AND EXISTS (SELECT table2.CODE
            FROM table2 
            WHERE table1.value = table2.DESC);
 

Eller du måske være i stand til at gøre dette:

UPDATE (SELECT table1.value as OLD, table2.CODE as NEW FROM table1 INNER JOIN table2 ON table1.value = table2.DESC WHERE table1.UPDATETYPE='blah' ) t SET t.OLD = t.NEW

Det afhænger af, om den inline-visning anses for at kunne opdateres af Oracle (At være opdaterbar for den anden sætning afhænger af nogle regler, der er angivet her ).



  1. MySQL COALESCE og NULLIF funktion

  2. Slut dig til mig med Special Guest Michal Bar fra MS Access Team!

  3. Formater SQL-tabeldata som teksttabel

  4. Indsættelse af DEFAULT-værdi i en kolonne, når en parameter er NULL