sql >> Base de Datos >  >> RDS >> Oracle

ACTUALIZAR con CASE e IN - Oracle

Dijiste que Budgetpost es alfanumérico. Eso significa que está buscando comparaciones con cadenas. Debería intentar encerrar sus parámetros entre comillas simples (y le falta el THEN final en la expresión 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