2
SELECT CASE Price WHEN '' THEN 0.0 ELSE Price END FROM Table
如果价格空,则返回0.0,但如果列具有价值它给了我下面将varchar转换为数据类型数值的算术溢出错误?
算术溢出错误转换VARCHAR数据类型的数字错误。
如何更改我的代码来处理这种情况?
SELECT CASE Price WHEN '' THEN 0.0 ELSE Price END FROM Table
如果价格空,则返回0.0,但如果列具有价值它给了我下面将varchar转换为数据类型数值的算术溢出错误?
算术溢出错误转换VARCHAR数据类型的数字错误。
如何更改我的代码来处理这种情况?
SELECT CASE Price WHEN '' THEN 0.0 ELSE CAST(Price AS DECIMAL(...)) END FROM Table
隐式转换通常会采用最小的可能类型,所以当您遇到较大的值时将会失败。在CASE/ELSE中将您的值明确地转换/转换为正确的类型。
它的工作原理,其中一些列的值为30.100000000000001,并且失败。有没有解决办法? – CodeHunter
什么数据类型是价格列? – Joe
价格栏是十进制的 – CodeHunter
那么它怎么能等于一个空字符串呢?我不明白你的CASE声明。 – Joe