infobright开发-数字类型与字符类型union后,变成NULL值

本文详细介绍了在MySQL中使用union操作将数字类型与字符类型合并时出现的类型转换问题,以及如何通过cast函数进行有效解决。包括对cast函数的使用方法和各种数据类型的转换示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  infobright开发-数字类型与字符类型union后,op_day_id有一行变成NULL值,如下例子:

 select distinct a.app_id, a.imei, a.op_day_id, b.first_boot_time

     from A a
     join B b
       on a.day_id =${ETLDate}
      and a.imei = b.imei
      and a.app_id = b.app_id
   union all
      SELECT b.app_id,
          b.imei,
          date_format(b.first_boot_time, '%Y%m%d'),
          b.first_boot_time
     FROM B b

    WHERE date_format(b.first_boot_time, '%Y%m%d')=${ETLDate};


不会像oracle那样字段类型字段转化,也不报错,真是坑!不知mysql下面是否一样,待测试!


解决:

采用cast进行类型转化  cast (col as SIGNED) ,cast 用法:

二进制,同带binary前缀的效果 : BINARY    
字符型,可带参数 : CHAR()     
日期 : DATE     
时间: TIME     
日期时间型 : DATETIME     
浮点数 : DECIMAL      
整数 : SIGNED     
无符号整数 : UNSIGNED 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值