gpt4 book ai didi

MySQL SUM() 始终返回 0 值

转载 作者:行者123 更新时间:2023-11-29 12:58:09 27 4
gpt4 key购买 nike

我的表中以 varchar 形式存储了金额。

当尝试对它们求和时,它总是返回 0.00。

下面是仅使用数据库中的一条记录的示例。

SELECT col1, SUM(CAST(col2 AS DECIMAL(20,2))) derived1
FROM table
WHERE col3 = 'FIT'
AND col1 = '6211195'
GROUP BY col1

这会返回值为 0 的一行。通过从查询中删除 SUM 和 CAST,我可以看到它正在按应有的方式提取值,但我无法对其进行求和或转换,添加其中任何一个都会破坏它并再次返回 0。我还尝试将该字段转换为十进制类型,它只是将所有值归零。

编辑:

呃,我刚刚运行了一个 REGEX 查询来检测任何不是字母数字值或小数点的内容。看来该字段中有我看不到的非 ASCII 字符,扰乱了类型转换。随着我了解更多信息,将继续更新。

最佳答案

显示 col2 的一些示例值。真正是数字的字符串将被视为数字。因此'1'将变成1 .

但是,如果字符串不以数字开头,'-' ,或'+' (在前导空格之后),那么它将是 0 (在多数情况下)。所以'A1'将是0 。等等。一如既往'$100' .

教训是:如果列包含数字,请将它们存储为数字。真的很简单。

关于MySQL SUM() 始终返回 0 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23723093/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com