Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso usar a condição OR na expressão CASE do MySQL?

CASE ranking
  WHEN 1 THEN 'alpha' 
  WHEN 2 THEN 'beta'  
  WHEN 10 THEN 'charlie' 
  ELSE 'zelta' 
END CASE;

Você pode usar uma das expressões que WHEN tem, mas não pode misturar as duas.

1) WHEN when_expressionÉ uma expressão simples com a qual input_expression é comparado quando o formato CASE simples é usado. when_expression é qualquer expressão válida. Os tipos de dados de input_expression e cada when_expression devem ser os mesmos ou devem ser uma conversão implícita.

2) WHEN Boolean_expressionÉ a expressão booleana avaliada ao usar o formato CASE pesquisado. Boolean_expression é qualquer expressão booleana válida.

Você poderia programar:

1)
 CASE ProductLine
         WHEN 'R' THEN 'Road'
         WHEN 'M' THEN 'Mountain'
         WHEN 'T' THEN 'Touring'
         WHEN 'S' THEN 'Other sale items'
         ELSE 'Not for sale'

2)
CASE 
         WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
         WHEN ListPrice < 50 THEN 'Under $50'
         WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
         WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
         ELSE 'Over $1000'
      END

Mas, em qualquer caso, você pode esperar que a classificação da variável seja comparada em uma expressão booleana.

http://msdn.microsoft.com/en-us/library/ms181765 .aspx