MySQL插入错误的十进制值

时间:2017-07-02 16:05:05

标签: mysql sql

我有以下查询:

Id

我一直在:

dat <- data.frame(spice=5*runif(100))

dat$lvl <- cut(dat$spice, breaks=c(0,2,2.5,1e6), right=FALSE)

dat$lvl <- as.factor(as.numeric(dat$lvl))

所以我看了看: Incorrect DECIMAL value when inserting MySQL

尝试了if&#39;&#39;,NULL - 相同的结果。

然后我做了如果&#39;&#39;,0.0 - 相同的结果

我只是不知道我怎么能指出究竟是什么坏事......我知道这是“其他平衡”中的事情。列,因为如果我这样做:

INSERT INTO DUMP (storename,
                  balance,
                  otherbalance)
SELECT storename,
       IF(balance = '', 0.0, CAST(balance AS DECIMAL (9,2))) AS balance,
       IF(otherbalance = '', 0, CAST(otherbalance AS DECIMAL(9,2))) AS otherbalance
FROM superchart
AND storename IN ('Superstore')

它实际上有效,我只是不知道如何指出坏的记录。

任何机构都有除IF =&#39;&#39;,NULL之外的任何建议......不完全确定接下来要尝试什么。

所以,我通过分解来指出记录。

所以我有两个记录,一个插入,另一个没有...如果我做了

两个记录的LENGTH(其他平衡)我得到4并且单元格中的值是0.00所以看起来它们是相同的是否有任何提示/技巧在完成任何转换之前拉出单元格的确切值?

谢谢,

1 个答案:

答案 0 :(得分:1)

您似乎遇到position: relative; 无法转换的问题。

如果您想在这种情况下将值设为零,则可以执行以下操作:

balance

这是隐式转换,不会返回错误。否则,使用正则表达式查找违规值。像这样:

SELECT storename, balance+0

这应该返回有问题的值。