sqlsql-servert-sqlcase

OR is not supported with CASE expression SQL Server


The OR operator in the WHEN clause of a CASE expression is not supported. How can I do this?

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

Solution

  • That format requires you to use either:

    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 
    

    Otherwise, use:

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