Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

UPDATE com CASE e IN - Oracle


Você disse que o budgetpost é alfanumérico. Isso significa que ele está procurando comparações com strings. Você deve tentar colocar seus parâmetros entre aspas simples (e está faltando o THEN final na expressão 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