解决MySQL中 GROUP_CONCAT方法拼接字符传,第一位或最后一位会有逗号问题

解决MySQL中 GROUP_CONCAT方法拼接字符传,第一位或最后一位会有逗号问题

select 

f.fld_guid as fldGuid,
o.fld_name as ownerName,
convert(f.fld_amount, decimal(18,2)) as amount,
GROUP_CONCAT(d.fld_bill_no2) as billNo2


from es_charge_incoming_fee f
left join es_charge_incoming_data d on f.fld_guid = d.fld_incoming_fee_guid and d.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
join es_info_owner o on f.fld_owner_guid = o.fld_guid and o.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
left join es_charge_pay_mode pm on d.fld_pay_mode_guid = pm.fld_guid 
where f.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF' 
and d.fld_object_guid in('CC03521F-2717-42EB-B4DF-13755A3BBE61')



GROUP BY f.fld_guid
ORDER BY f.fld_guid

在这里插入图片描述

解决方案,优化GROUP_CONCAT方法

select 

f.fld_guid as fldGuid,
o.fld_name as ownerName,
convert(f.fld_amount, decimal(18,2)) as amount,
ifnull(GROUP_CONCAT(distinct if(d.fld_bill_no2='',null,d.fld_bill_no2)),'') as billNo,
GROUP_CONCAT(d.fld_bill_no2) as billNo2


from es_charge_incoming_fee f
left join es_charge_incoming_data d on f.fld_guid = d.fld_incoming_fee_guid and d.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
join es_info_owner o on f.fld_owner_guid = o.fld_guid and o.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
left join es_charge_pay_mode pm on d.fld_pay_mode_guid = pm.fld_guid 
where f.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF' 
and d.fld_object_guid in('CC03521F-2717-42EB-B4DF-13755A3BBE61')



GROUP BY f.fld_guid
ORDER BY f.fld_guid

在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值