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’)函数说明
SELECT locate('E','EABCD')
结果为1
SELECT locate('E','AEBCD')
结果为2
SELECT locate('E','AEBCD')
结果为3
SELECT locate('E','ABCED')
结果为4
SELECT locate('E','ABCDE')
结果为5
SELECT locate('E','ABCD')
结果为
==>0
所以当后面字段的值不包含前面的字符串时,返回的结果为
0
,再利用case when
语句相结合,就可以根据这个字段值
是否包含
什么字符串或者什么数字或者什么值进行相应的判断
,得到
自己想要的结果
。