代码改变世界

浅谈case..when..then..end

2009-12-08 17:21  SaraPad  阅读(218)  评论(0编辑  收藏  举报

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

CASE 有两种格式:

  • 简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
  • CASE 搜索函数计算一组布尔表达式以确定结果。

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

CASE input_expression     WHEN when_expression THEN result_expression         [ ...n ]     [         ELSE else_result_expression     ] END 
CASE    WHEN Boolean_expression THEN result_expression         [ ...n ]     [         ELSE else_result_expression     ] END
 
1:SELECT ShipVia, CASE ShipVia     WHEN 1 THEN 'A.Datum'    WHEN 2 THEN 'Contoso'    WHEN 3 THEN 'Consolidated Messenger'        ELSE 'Unknown'        ENDFROM Orders
2:SELECT CONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter,@dt)*3-Month(@dt),@dt),120)+CASE WHEN DATEPART(Quarter,@dt) in(1,4)THEN '31'ELSE '30' END)