You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UNION ALL操作后字符串值被截断问题咨询

EAN值在UNION ALL后被截断的原因

这个异常的核心原因是UNION ALL会以第一个查询返回的列数据类型作为整个结果集的统一类型,具体到你的场景:

  • 你的查询中第一个SELECT语句对应的tbl_stock_tracker_2022表,其EAN列实际存储类型并非字符串,而是数值类型(比如DECIMAL/NUMERIC,且精度不足以容纳12位的完整EAN值)。
  • 第三个表tbl_qogita_data_dump_2022_v2(即你所说的表B)的EAN是字符串类型,执行UNION ALL时,字符串类型的EAN会被强制转换为第一个查询定义的数值类型。
  • 受数值类型的精度限制,12位的EAN字符串(如666151010628)在转换时会被截断或取整,最终呈现为666151000000这类截断后的数值。

你可以通过两个方式验证这个结论:

  1. 单独查询tbl_stock_tracker_2022的EAN列,查看其实际存储类型;
  2. 在第三个SELECT语句中显式将EAN转为字符串,比如替换原SELECT *为明确列并转换EAN:SELECT Year, Week, ..., CAST(EAN AS STRING), ...,如果结果不再出现截断,即可确认问题根源。

内容的提问来源于stack exchange,提问作者user20777937

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:07:05