计算条件列表,并返回多个可能的结果表达式之一。数据库
case具备两种格式:express
这两种方式,都支持可选的 else参数,大部分状况下是能够实现相同的功能。
case可用于容许使用有效表达式的任意语句或子句, 例如,能够在 select、update、delete和 set等语句以及 select_list、in、where、order by和 having等子句中使用 Case。函数
select spa
case input_expressionip
when when_expression then result_expressioninput
when when_expression then result_expressionit
......io
else else_result_expressionend table
from class
databasename.dbo.tablename
select
case
when boolean_expression then result_expression
when boolean_expression then result_expression
......
else else_result_expressionend end
from
databasename.dbo.tablename
input_expression
使用简单 case格式时计算的表达式。 input_expression 是任何有效的表达式 。
when when_expression
使用简单 case格式时要与 input_expression 进行比较的简单表达式 。 when_expression 是任何有效的表达式 。input_expression 及每一个 when_expression 的数据类型必须相同或必须是隐式转换的数据类型 。
then result_expression
当 input_expression = when_expression 的计算结果为 true时,或 boolean_expression 的计算结果为 true时返回的表达式 。 result expression 是任何有效的表达式 。
else else_result_expression
比较运算计算结果不为 true 时返回的表达式。 若是忽略此参数且比较运算计算结果不为 true,则 case返回 null。 else_result_expression 是任何有效的表达式 。 else_result_expression 及任何 result_expression 的数据类型必须相同或必须是隐式转换的数据类型 。
when boolean_expression
使用 case 搜索格式时所计算的布尔表达式。 boolean_expression 是任何有效的布尔表达式 。
从 result_expressions 和可选 else_result_expression 的类型集中返回优先级最高的类型 。
case 简单表达式:
case 简单表达式的工做方式以下:将第一个表达式与每一个 when 子句中的表达式进行比较,以肯定它们是否等效。 若是这些表达式等效,将返回 then 子句中的表达式。
case 搜索表达式:
简单case函数注重简洁,可是它只适用于这种单字段的单值比较,而case搜索函数的优势在于适用于全部比较(包括多值比较)的状况。