Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1241550
  • 博文数量: 510
  • 博客积分: 20296
  • 博客等级: 上将
  • 技术积分: 4680
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-30 03:58
文章存档

2011年(13)

2010年(92)

2009年(242)

2008年(163)

我的朋友

分类: 数据库开发技术

2011-09-10 20:48:12

        计算条件列表并返回多个可能结果表达式之一。

        CASE 表达式有两种格式:

  • CASE 简单表达式,它通过将表达式与一组简单的表达式进行比较来确定结果。

  • CASE 搜索表达式,它通过计算一组布尔表达式来确定结果。

        这两种格式都支持可选的 ELSE 参数。

        CASE 可用于允许使用有效表达式的任意语句或子句。例如,可以在 SELECT、UPDATE、DELETE 和 SET 等语句以及 select_list、IN、WHERE、ORDER BY 和 HAVING 等子句中使用 CASE。


语法

  1. Simple CASE expression:
  2. CASE input_expression
  3.      WHEN when_expression THEN result_expression [ ...n ]
  4.      [ ELSE else_result_expression ]
  5. END
  6. Searched CASE expression:
  7. CASE
  8.      WHEN Boolean_expression THEN result_expression [ ...n ]
  9.      [ ELSE else_result_expression ]
  10. END


参数

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 子句中的表达式。

  • 仅用于等同性检查。

  • 计算 input_expression,然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。

  • 返回 input_expression = when_expression 的第一个计算结果为 TRUE 的 result_expression

  • 如果 input_expression = when_expression 的计算结果均不为 TRUE,则在指定了 ELSE 子句的情况下,SQL Server 数据库引擎将返回else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

CASE 搜索表达式:

  • 按指定顺序对每个 WHEN 子句的 Boolean_expression 进行计算。

  • 返回 Boolean_expression 的第一个计算结果为 TRUE 的 result_expression

  • 如果 Boolean_expression 计算结果不为 TRUE,则在指定 ELSE 子句的情况下数据库引擎将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。


返回类型

      SQL Server 仅允许在 CASE 表达式中嵌套 10 个级别。

      CASE 表达式不能用于控制 Transact-SQL 语句、语句块、用户定义函数以及存储过程的执行流。有关控制流方法的列表,请参阅。


本文来自MSDN,仅作个人学习查阅之用。

参考:

     




阅读(722) | 评论(0) | 转发(0) |
0

上一篇:SQL SERVER 2008 R2数据类型

下一篇:SQL TOP

给主人留下些什么吧!~~