您好,DMS中我们发现跨库查询的时候, where 条件里的 decimal 数据类型的字段不生效,这个要怎么解决呀? trace id 0bc3b4aa16843795991046462e7692比如 total_fee 是 decimal 字段
下面这个条件会把 不等于 1.90 的数据都查出来 WHERE total_fee
= '1.90'
把引号去掉也是一样,是不同实例的不同数据库连表查的,查出来数据有问题,然后测试单库查询,发现了这个问题,是正常的
源库查询结果,sql窗口,逻辑数仓里面有问题,是啊,所以我们去逻辑数仓查询了呀
首先,需要确认是不是因为数据类型不匹配导致的问题。如果 where 条件中传递的参数是字符串类型,而 total_fee 是 decimal 类型,这可能就是原因。可以尝试将参数改为 decimal 类型的数值。
如果是数据类型匹配导致的问题,可以尝试使用 CAST 函数将 decimal 类型转换为字符串类型,然后再进行查询。例如:
WHERE CAST(total_fee AS CHAR) = '1.90'
查询的同实例下的不同库吗?在原库查询是正常的吧,在sql窗口查询的还是在逻辑数仓里面查询的?sql窗口不支持不同实例下不同库的跨库查询,此回答整理自钉群“阿里云DMS数据管理用户交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。