CASE (Entity SQL)
Evalúa un conjunto de expresiones Boolean
para determinar el resultado.
Sintaxis
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Argumentos
n
Es un marcador de posición que indica que se pueden usar varias cláusulas WHEN Boolean_expression
THEN result_expression
.
THEN result_expression
Es la expresión devuelta cuando Boolean_expression
se evalúa como true
. result expression
es cualquier expresión válida.
ELSE else_result_expression
Es la expresión que se devuelve si ninguna operación de comparación se evalúa como true
. Si se omite este argumento y ninguna comparación se evalúa como true
, CASE devuelve NULL. else_result_expression
es cualquier expresión válida. Los tipos de datos de else_result_expression
y cualquier result_expression
deben ser iguales o deben ser una conversión implícita.
WHEN Boolean_expression
Es la expresión Boolean
que se evalúa cuando se usa el formato CASE buscado. Boolean_expression
es cualquier expresión Boolean
válida.
Valor devuelto
Devuelve el tipo de prioridad más alto del conjunto de tipos de result_expression
y de la expresión else_result_expression
opcional.
Observaciones
La expresión CASE de Entity SQL es similar a la de Transact-SQL. Puede usar la expresión case para efectuar una serie de pruebas condicionales que permitan determinar qué expresión dará el resultado apropiado. Este formato de expresión case se aplica a una serie de una o varias expresiones Boolean
para determinar la que produce el resultado correcto.
La función CASE evalúa la Boolean_expression
de cada cláusula WHEN en el orden especificado, y devuelve la result_expression
de la primera Boolean_expression
que se evalúa como true
. Las expresiones restantes no se evalúan. Si ninguna Boolean_expression
se evalúa como true
, el motor de base de datos devuelve la else_result_expression
si se especifica una cláusula ELSE, o un valor Null en otro caso.
Una instrucción CASE no puede devolver un conjunto múltiple.
Ejemplo
La siguiente consulta de Entity SQL usa la expresión CASE para evaluar un conjunto de expresiones Boolean
en orden con el fin de determinar el resultado. La consulta se basa en el modelo AdventureWorks Sales. Para compilar y ejecutar esta consulta, siga estos pasos:
Siga los pasos que se indican en Procedimientos para ejecutar una consulta que devuelve resultados PrimitiveType.
Pase la consulta siguiente como argumento al método
ExecutePrimitiveTypeQuery
:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END