zoukankan      html  css  js  c++  java
  • SQLServer之Case用法

    定义

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

    表达式类型

    case具有两种格式:

    • 简单case表达式,它通过将表达式与一组简单的表达式进行比较来确定结果。
    • case搜索表达式,它通过计算一组布尔表达式来确定结果。

    这两种方式,都支持可选的 else参数,大部分情况下是可以实现相同的功能。

    case可用于允许使用有效表达式的任意语句或子句, 例如,可以在 select、update、delete和 set等语句以及 select_list、in、where、order by和 having等子句中使用 Case。

    语法

    简单case表达式

    select 

    case input_expression

    when when_expression then result_expression

    when when_expression then result_expression

    ......

    else else_result_expressionend 

    from 

    databasename.dbo.tablename

    示例

    case搜索表达式

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

    • 仅用于等同性检查。

    • 按指定的顺序计算每个 when 子句的 input_expression = when_expression。

    • 返回首个 input_expression = when_expression 的计算结果为 true 的 result_expression 。

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

    case 搜索表达式:

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

    • 返回首个 boolean_expression 的计算结果为 true 的 result_expression 。

    • 如果 boolean_expression 的计算结果均不为 true,则在指定了 else 子句的情况下,数据库引擎将返回 else_result_expression;若没有指定 else 子句,则返回 null 值 。

    优缺点

    简单case函数注重简洁,但是它只适用于这种单字段的单值比较,而case搜索函数的优点在于适用于所有比较(包括多值比较)的情况。

  • 相关阅读:
    Head first javascript(七)
    Python Fundamental for Django
    Head first javascript(六)
    Head first javascript(五)
    Head first javascript(四)
    Head first javascript(三)
    Head first javascript(二)
    Head first javascript(一)
    Sicily 1090. Highways 解题报告
    Python GUI programming(tkinter)
  • 原文地址:https://www.cnblogs.com/vuenote/p/10637427.html
Copyright © 2011-2022 走看看