sql函数-----查询结果有数据为null时,concat查询结果出现null问题

 在把查询出来的结果concat时,如果查询结果中有数据为null,那么concat的数据返回值为null。

 需要把查询出来的结果进行一个为null的判断,使用if null来对查询的结果进行为null的判断。

 错误例子: sql语句中的第二where没有粘全,

 

改正后的正确Sql:在concat数据时,加上if null进行数据判断为不为null,为null就输出为 ' ' 。如果你的数据类型是int的类型,如果为null时,就输出为0, 将下面sql中的 ' ' 改为0即可。

  (
  SELECT
    a1.store_id AS storeId,
    a1.store_code AS storeCode,
    a1.store_name AS storeName,
    a1.create_time AS createTime,
    a2.business_code AS businessStageCode,
    a2.business_name AS businessStageName,
    concat( ifnull(a3.province_name,''), ifnull(a3.city_name,''),  ifnull(a3.district_name,'') ) AS administrativeArea,
    a3.province_id AS provinceId,
    a3.province_name AS provinceName,
    a3.city_id AS cityId,
    a3.city_name AS cityName,
    a3.area_id AS areaId,
    a3.area_name AS areaName,
    a3.district_id AS districtId,
    a3.district_name AS districtName 
  FROM
    store_info a1
    LEFT JOIN business_stage a2 ON a1.business_stage_code = a2.business_code
    LEFT JOIN address_extend a3 ON a1.store_id = a3.basic_id 
  WHERE
    1 = 1 
    AND a2.parent_id = '010100'
  ) b1 
WHERE
  1 = 1 
ORDER BY
  b1.businessStageCode = '010105' DESC,
  b1.createTime DESC 
  LIMIT 50

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

油锅里的猪

您的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值