sql中的case函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/brink_compiling/article/details/80775251

功能

计算条件列表,并返回多个可能的结果表达式之一。可以在sql中对字段进行简单的处理。

语法

case语句有简单表达式和搜索表达式两种用法,格式如下:
--Simple CASE expression: 
CASE input_expression   
     WHEN when_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END   
--Searched CASE expression:  
CASE  
     WHEN Boolean_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END 

CASE 简单表达式的工作方式如下:将第一个表达式与每个 WHEN 子句中的表达式进行比较,以确定它们是否等效。 如果这些表达式等效,将返回 THEN 子句中的表达式。

  • 仅用于等同性检查。
  • 按指定的顺序计算每个 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 值。

示例

简单表达式:
CASE ProductLine
    WHEN 'R' THEN 'Road'  
    WHEN 'M' THEN 'Mountain'  
    WHEN 'T' THEN 'Touring'  
    WHEN 'S' THEN 'Other sale items'  
    ELSE 'Not for sale'  
END

搜索表达式:

CASE
    WHEN MIN(value) <= 0 THEN 0   
    WHEN MAX(1/value) >= 100 THEN 1   
END

猜你喜欢

转载自blog.csdn.net/brink_compiling/article/details/80775251