mssql sqlserver case 关键字应用说明简介


摘要:
下文讲述sqlserver中case关键字的用法,如下所示:
实验环境:sql server 2008 R2



case 关键字用法简介:

  --用法1: 字段判断
   select    
       CASE [列名]
            WHEN 'a' THEN '类别A'
            WHEN 'b' THEN '类别B'
            ELSE '其它' 
        END
            as [类别分类] 
     from [表名]
 ----------------------------------------
  --用法2:when 条件中指定任意字段判断
    select    
       CASE 
            WHEN [列名]= 'a' THEN '类别A'
            WHEN [列名]='b' THEN '类别B'
            ELSE '其它' 
        END
            as [类别分类] 
     from [表名]


case 匹配注意事项:
当case 匹配第一个匹配结果符合时,此时case 函数将会终止执行;
case 用法2比用法1更加灵活,用法2可以同时对多个字段进行判断,相比case写法1具有更强的灵活性。



case 关键字用途:

1.字段替换显示
在一些特殊的场景,数据库存储的为1 或 0 表示开关,当我们呈现数据给用户时,我们可以采用case 对行数据进行相关操作,如下所示:

    select    
       CASE 
            WHEN [列名]= '1' THEN '开'
            WHEN [列名]='0' THEN '关'
            ELSE '未知' 
        END
            as [标志] 
     from [表名]

2.分类数据统计
例:
统计一张销量表中,
销量大于等于100 的销售员个数
销量小于100的销售员个数

   select  销售员,
     sum(
      case 
      when  [销量] >=100 then 1 
      else 0 
       end 
     ) as [销量大于等于100],
    sum(
      case 
      when  [销量] <100 then 1 
      else 0 
       end 
     ) as [销量小于100]
   from  [tablename]
    group by 销售员