where 中的 case 用法

本文介绍了SQL中Case语句的多种使用场景,包括在SELECT列中进行条件判断及转换字段值,在WHERE子句中实现条件筛选,以及结合Like进行灵活的模式匹配。通过具体示例展示了如何根据不同需求运用Case语句提升SQL查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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   ) 

转载于:https://my.oschina.net/swearyd7/blog/168095

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值