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 admiten 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.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_expressionpara 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