where中的case

1. 在选择列中的实例
select
  (case t.ca04_field_id
      when '1021' then '1021000'
      when '1022' then '1022000'
      else '7777'
      end) as field 
     
from ta_document15 t

2.在where条件中

由于case   when   只能返回值,不能返一个true   OR   false ,
所以在where条件中,可以采用下边的方法:
where  
(case XXX  when   A     then   1  
            when  B    then   2
            else   0  
end)=1



另,case+like的用法:
declare   @IsShow   Int
select   @IsShow=1

如是不同的操作符可用下面的方式
Select   *
From   SO
Where     (SONUM   =   case     @IsShow   When   1   Then     'D3990001 '     end   )     or   (SONUM   like     case         @IsShow   When   2     Then     'D3A370261 '     end   )

如是相同的操作符可用下面的方式
Select   *
From   SO
Where     SONUM   like   (   case     @IsShow   When   1   Then     'D3990001% '     When   2     Then     'D3A370261% '     end   )

你可能感兴趣的:(where)