Oracle
 sql >> Base de données >  >> RDS >> Oracle

MISE À JOUR avec CASE et IN - Oracle

Vous avez dit que budgetpost est alphanumérique. Cela signifie qu'il recherche des comparaisons avec des chaînes. Vous devriez essayer de placer vos paramètres entre guillemets simples (et il vous manque le THEN final dans l'expression 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