CASE (SQL Server Compact)
Evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles.
CASE tiene dos formatos:
- La función CASE simple compara una expresión con un conjunto de expresiones simples para determinar el resultado.
- La función CASE buscada evalúa un conjunto de expresiones booleanas para determinar el resultado.
Ambos formatos son compatibles con un argumento ELSE opcional.
Sintaxis
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Argumentos
- input_expression
Expresión evaluada cuando se utiliza el formato CASE simple. El argumento input_expression es cualquier expresión válida en Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5).
- WHEN when_expression
Expresión simple con la que se compara input_expression cuando se utiliza el formato CASE simple. El argumento when_expression es cualquier expresión válida en SQL Server. Los tipos de datos de input_expression y cada when_expression deben ser iguales o se deben convertir implícitamente.
- n
Marcador de posición que indica que se pueden utilizar varias cláusulas WHEN when_expression THEN result_expression, o bien varias cláusulas WHEN Boolean_expression THEN result_expression.
- THEN result_expression
Expresión que se devuelve cuando input_expression es igual a when_expression toma el valor TRUE o cuando Boolean_expression toma el valor TRUE. El argumento result_expression es cualquier expresión válida en SQL Server.
- ELSE else_result_expression
Expresión que se devuelve si ninguna operación de comparación toma el valor TRUE. Si se omite este argumento y ninguna operación de comparación toma el valor TRUE, CASE devuelve NULL. El argumento else_result_expression es cualquier expresión válida en SQL Server. Los tipos de datos de else_result_expression y cualquier result_expression deben ser iguales o se deben convertir implícitamente.
- WHEN Boolean_expression
Expresión booleana evaluada cuando se utiliza el formato CASE buscado. Boolean_expression es cualquier expresión booleana válida.
Tipos de resultado
Devuelve el tipo de precedencia más alto del conjunto de tipos de result_expressions y la expresión else_result_expression opcional.
Valor devuelto
Función CASE simple:
- Evalúa input_expression y, a continuación, en el orden especificado, evalúa input_expression = when_expression para cada cláusula WHEN.
- Devuelve la expresión result_expression de la primera (input_expression = when_expression) que toma el valor TRUE.
- Si no hay ninguna expresión input_expression = when_expression que tome el valor TRUE, se devolverá else_result_expression si se especifica una cláusula ELSE, o bien NULL si no se especifica ninguna cláusula ELSE.
Función CASE buscada:
- Evalúa, en el orden especificado, la expresión Boolean_expression ** para cada cláusula WHEN.
- Devuelve la expresión result_expression de la primera Boolean_expression que toma el valor TRUE.
- Si no hay ninguna expresión Boolean_expression que tome el valor TRUE, se devolverá else_result_expression si se especifica una cláusula ELSE, o bien NULL si no se especifica ninguna cláusula ELSE.
Ejemplo
En el ejemplo siguiente, se devuelve el modo de envío utilizado para los pedidos realizados.
SELECT [Ship Via], CASE [Ship Via]
WHEN 1 THEN 'A.Datum'
WHEN 2 THEN 'Contoso'
WHEN 3 THEN 'Consolidated Messenger'
ELSE 'Unknown'
END
FROM Orders