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

AGGIORNAMENTO con CASE e IN - Oracle

Hai detto che budgetpost è alfanumerico. Ciò significa che sta cercando confronti con le stringhe. Dovresti provare a racchiudere i tuoi parametri tra virgolette singole (e ti manca il THEN finale nell'espressione Case).

UPDATE tab1   
SET budgpost_gr1=   CASE  
                        WHEN (budgpost in ('1001','1012','50055'))  THEN 'BP_GR_A'   
                        WHEN (budgpost in ('5','10','98','0'))  THEN 'BP_GR_B'  
                        WHEN (budgpost in ('11','876','7976','67465')) THEN 'What?'
                        ELSE 'Missing' 
                        END