最近写的一个sql需求,是在表中如果姓名字段的值不为空且不为空字符串的时候,就取其联系方式的后四位

用ifnull()函数只能排除为空的条件(可能通过添加附加条件也可以排除,欢迎朋友指正),以下是我最终的sql语句,供自己记忆,当然如果能对看到的人有帮助也是好的。

以下是我的sql:这里我用的case when函数

select sum(t.price) sum,t.account_id,case when  (d.name='' or d.name is null) then concat('尾号',substr(d.mobile,7,4)) else concat(substr(d.name,1,1),'老师') end  as name from iyb_data_biz t join iyb_data_account d on t.account_id=d.id where t.renew_biz_no is  null  and  t.create_time>'2018-06-18' and t.create_time<'2018-06-25' and t.product_code in ('51321307', '51321308', '51330241') group by t.account_id order by sum desc limit 100;