sql case when 的三种用法分享


摘要:
下文将从case when 用于数据展示和case when 用于条件查询两个方面进行数据展示,如下所示:
实验环境:sql server 2008 R2



用法1:case when 应用于数据展示

  select 
  (
   case  
      when    [列] like '%maomao%'  then 'maomao'
      when    [列] like '%xiao%'  then 'xiaoxiao'
      else 'other' 
   end
 )as 'then用法'
from  [maomao365.com]

/*
 当第一个when满足后,则展示出 maomao ,其它when 和else 则不执行
  如果所有的when条件都得不到满足,则输出else 的结果
*/


用法2:case when 应用于数据统计

  select 
  sum (
   case  
      when    [列]  like '%maomao%'  then 1
      else 0 
   end
 )as 'sum1',
  sum (
   case  
      when    [列]  like '%xiaoxiao%'  then 1
      else 0 
   end
 )as 'sum2'

from  [maomao365.com]


用法3:case when where数据检索

   select 
   * 
from  [maomao365.com]  
where 
     (
   case  
      when    [列] like '%maomao%'  then 1
      when    [列] like '%xiao%'  then 1
      else 0
   end
 )  =1
  /*
  以上sql脚本会展示出 列值包含maomao 或 列值包含xiao的数据行
*/