哈喽,有碰到过大数据计算MaxCompute:
coalesce(a1.cust_id,a2.cust_id) as cust_id
实际的a1.cust_id为null,a2.cust_id也为null,但插入表后却是0
的这种情况吗?
表的cust_id是bigint类型
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 MaxCompute 中,当使用 coalesce 函数时,如果参数列表中的所有表达式都为 NULL,那么 coalesce 函数将返回 NULL,而不会返回 0。因此,根据你提供的情况,coalesce(a1.cust_id, a2.cust_id) as cust_id 的结果应该是 NULL 而不是 0。
但是,如果在插入到表中后,cust_id 列的值为 0,可能有以下几个可能的原因:
插入语句中对 cust_id 执行了其他操作或转换:在插入语句中可能对 cust_id 列进行了一些操作或转换,导致最终的结果为 0。请检查插入语句中对 cust_id 列的处理逻辑。
表的定义或默认值设置:在表的定义或默认值设置中,可能对 cust_id 列设置了默认值为 0,或者在插入时对 cust_id 列使用了默认值。请检查表的定义和默认值设置。
数据源的问题:在插入数据时,可能来源于其他表或数据源,而不是 coalesce(a1.cust_id, a2.cust_id) 的结果。请检查数据源的值,确保在插入时使用的是 coalesce 函数的结果。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。