计算一组 Boolean
表达式以确定结果。
语法
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
论据
n
一个占位符,指示可以使用多个 WHEN Boolean_expression
THEN result_expression
子句。
THEN result_expression
是计算结果为true
时Boolean_expression
返回的表达式。
result expression
是任何有效的表达式。
如果没有比较运算的计算结果为 true
,则返回 ELSE else_result_expression
是返回的表达式。 如果省略此参数,并且没有比较作的计算结果 true
,则 CASE 返回 null。
else_result_expression
是任何有效的表达式。 数据类型和任何result_expression
数据类型else_result_expression
必须相同,或者必须是隐式转换。
Boolean
当Boolean_expression
使用搜索的 CASE 格式时计算表达式。
Boolean_expression
是任何有效的 Boolean
表达式。
返回值
从中 result_expression
和可选 else_result_expression
类型的集合中返回最高优先级类型。
注解
Entity SQL case 表达式类似于 Transact-SQL 事例表达式。 使用事例表达式进行一系列条件测试,以确定哪个表达式将产生适当的结果。 这种形式的事例表达式适用于一个或多个表达式的一系列 Boolean
,以确定正确的结果表达式。
CASE 函数按指定的顺序计算Boolean_expression
每个 WHEN 子句,并返回result_expression
计算结果为true
的第一Boolean_expression
个子句。 不会计算其余表达式。
Boolean_expression
如果未计算结果true
,则数据库引擎返回 ELSE 子句的指定值;如果未指定 ELSE 子句,则返回 else_result_expression
null 值。
CASE 语句不能返回多集。
示例:
以下 Entity SQL 查询使用 CASE 表达式计算一组 Boolean
表达式,以确定结果。 查询基于 AdventureWorks 销售模型。 若要编译并运行此查询,请执行以下步骤:
按照作方法中的过程作 :执行返回 PrimitiveType 结果的查询。
将以下查询作为参数传递给
ExecutePrimitiveTypeQuery
方法:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END