开发者社区 > 数据库 > 正文

您好,DMS中我们发现跨库查询的时候, where 条件里的 decimal 数据类型的字段不生效?

您好,DMS中我们发现跨库查询的时候, where 条件里的 decimal 数据类型的字段不生效,这个要怎么解决呀? trace id 0bc3b4aa16843795991046462e7692比如 total_fee 是 decimal 字段

下面这个条件会把 不等于 1.90 的数据都查出来 WHERE total_fee = '1.90'image.png image.png 把引号去掉也是一样,是不同实例的不同数据库连表查的,查出来数据有问题,然后测试单库查询,发现了这个问题,是正常的image.png 源库查询结果,sql窗口,逻辑数仓里面有问题,是啊,所以我们去逻辑数仓查询了呀

展开
收起
真的很搞笑 2023-05-23 20:26:26 151 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    首先,需要确认是不是因为数据类型不匹配导致的问题。如果 where 条件中传递的参数是字符串类型,而 total_fee 是 decimal 类型,这可能就是原因。可以尝试将参数改为 decimal 类型的数值。

    如果是数据类型匹配导致的问题,可以尝试使用 CAST 函数将 decimal 类型转换为字符串类型,然后再进行查询。例如:

    WHERE CAST(total_fee AS CHAR) = '1.90'

    2023-05-23 22:58:15
    赞同 展开评论 打赏
  • 查询的同实例下的不同库吗?在原库查询是正常的吧,在sql窗口查询的还是在逻辑数仓里面查询的?sql窗口不支持不同实例下不同库的跨库查询,此回答整理自钉群“阿里云DMS数据管理用户交流群”

    2023-05-23 20:46:17
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关电子书

更多
金融行业高频交易数据管理解决方案 立即下载
基于Spark的统一数据管理与数据探索平台 立即下载
INFINIDATA:基于Spark的统一数据管理与探索平台 立即下载