O no es compatible con la declaración CASE en SQL Server

Resuelto Werner asked hace 13 años • 11 respuestas

No se admite el ORoperador en la WHENcláusula de una declaración. CASE¿Cómo puedo hacer esto?

CASE ebv.db_no 
    WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500' 
    ELSE 'WECS 9520' 
END as wecs_system 
Werner avatar Mar 30 '11 21:03 Werner
Aceptado

Ese formato requiere que uses:

CASE ebv.db_no 
  WHEN 22978 THEN 'WECS 9500' 
  WHEN 23218 THEN 'WECS 9500'  
  WHEN 23219 THEN 'WECS 9500' 
  ELSE 'WECS 9520' 
END as wecs_system 

De lo contrario, utilice:

CASE  
  WHEN ebv.db_no IN (22978, 23218, 23219) THEN 'WECS 9500' 
  ELSE 'WECS 9520' 
END as wecs_system 
OMG Ponies avatar Mar 30 '2011 14:03 OMG Ponies
CASE
  WHEN ebv.db_no = 22978 OR 
       ebv.db_no = 23218 OR
       ebv.db_no = 23219
  THEN 'WECS 9500' 
  ELSE 'WECS 9520' 
END as wecs_system 
Darren avatar Apr 05 '2012 03:04 Darren
CASE WHEN ebv.db_no IN (22978, 23218, 23219) THEN 'WECS 9500' 
 ELSE 'WECS 9520' 
END as wecs_system 
Cade Roux avatar Mar 30 '2011 14:03 Cade Roux