开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

MaxCompute中string类型的转成bigint类型,感觉前者转成0实属不妥啊 ?

MaxCompute中string类型的转成bigint类型,比如19个9这样子的string类型转成bigint类型用SqL实现的话会转成0,而不是报错。但是通过bi实现的话 就报错。感觉前者转成0实属不妥啊 ?

展开
收起
真的很搞笑 2024-02-06 09:31:22 103 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在MaxCompute中,将string类型转换为bigint类型时,如果字符串表示的数值超出了bigint的范围,确实可能会出现问题。具体来说:

    1. SQL实现:在MaxCompute的SQL中,当超出范围时,转换结果为0,而不是报错。这是因为MaxCompute SQL在处理数据类型转换时,采用了容错的设计,即使遇到无法正确转换的值,也不会抛出错误,而是返回一个默认值(对于数值类型,这个默认值通常是0)。
    2. BI工具实现:在BI工具中,可能会对数据类型转换有更严格的检查,因此在遇到超出范围的值时会报错。

    对于您提到的19个9这样的大数,它确实超出了bigint类型的范围,因此在转换时会出现问题。

    如果您希望在转换时能够正确处理这种情况,可以考虑以下方法:

    1. 自定义函数:您可以编写自定义函数来处理这种特殊的转换逻辑。
    2. 预处理数据:在进行类型转换之前,先对数据进行预处理,确保所有需要转换的值都在目标类型的范围内。
    3. 使用其他类型:如果可能,考虑使用能够容纳更大数值的类型,如decimal。

    总的来说,处理大数值时,需要注意数据类型的范围和转换的逻辑,以避免出现意外的结果或错误。

    2024-02-06 21:37:45
    赞同 展开评论 打赏
  • 使用cast强转一下 ,此回答整理自钉群“MaxCompute开发者社区2群”

    2024-02-06 10:51:52
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载