CASE (实体 SQL)

计算一组 Boolean 表达式以确定结果。

语法

CASE
     WHEN Boolean_expression THEN result_expression
    [ ...n ]
     [
    ELSE else_result_expression
     ]
END

论据

n 一个占位符,指示可以使用多个 WHEN Boolean_expression THEN result_expression 子句。

THEN result_expression 是计算结果为trueBoolean_expression返回的表达式。 result expression 是任何有效的表达式。

如果没有比较运算的计算结果为 true,则返回 ELSE else_result_expression 是返回的表达式。 如果省略此参数,并且没有比较作的计算结果 true,则 CASE 返回 null。 else_result_expression 是任何有效的表达式。 数据类型和任何result_expression数据类型else_result_expression必须相同,或者必须是隐式转换。

BooleanBoolean_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 销售模型。 若要编译并运行此查询,请执行以下步骤:

  1. 按照作方法中的过程作 :执行返回 PrimitiveType 结果的查询

  2. 将以下查询作为参数传递给 ExecutePrimitiveTypeQuery 方法:

CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END

另请参阅