如何根据字段值的不同返回不同的结果

sql写法

select
     r.SN, r.PN, r.MODEL_DESC,
     CASE 
     WHEN locate('6G',r.MODEL_DESC)>0  THEN 0
     WHEN locate('3G',r.MODEL_DESC)>0  THEN 1
     ELSE 2
     END as machineType
     <!--0代表6G机器,1代表3G机器,2代表其他机器-->

     from material r
     inner join material_tel m on r.ID = m.MATERIAL_ID and m.IS_DEL = 0
     where m.CUSTOMER_TEL = #{customerTel} and r.IS_DEL = 0

locate(‘xx’,‘xxx’)函数说明

  1. SELECT locate('E','EABCD') 结果为1
  2. SELECT locate('E','AEBCD') 结果为2
  3. SELECT locate('E','AEBCD') 结果为3
  4. SELECT locate('E','ABCED') 结果为4
  5. SELECT locate('E','ABCDE') 结果为5
  6. SELECT locate('E','ABCD') 结果为 ==> 0

所以当后面字段的值不包含前面的字符串时,返回的结果为0,再利用case when语句相结合,就可以根据这个字段值是否包含什么字符串或者什么数字或者什么值进行相应的判断得到自己想要的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值