gpt4 book ai didi

sql - 尝试对 SQL Server 中的两列求和导致错误消息

转载 作者:行者123 更新时间:2023-12-04 18:36:17 25 4
gpt4 key购买 nike

我正在尝试使用查询计算两个单独字段的总和

select sum(percent12 + percent21) as total
from finalquery

但我一直收到这个错误:

Msg 8117, Level 16, State 1, Line 535

Operand data type varchar is invalid for sum operator.

但是,如果我这样做:

select percent12 + percent21 as total
from finalquery

我得到:

(total)
50.0040.00
25.0025.00
100.0 0.00
100.0 0.00
100.0 0.00

我该如何解决这个问题?

最佳答案

您的两个百分比列都是 varchar,+ 运算符可以将字符串连接在一起,这就是您所看到的。
我建议您将 CAST 用于 NUMERIC 数据类型,尤其是当您似乎在小数点后有固定数量的空格时。

尝试以下操作:

SELECT 
SUM(CAST(percent12 AS NUMERIC(10,2))+ CAST(percent21 AS NUMERIC(10,2))) AS total
FROM finalquery

其他人建议您将 CAST 转换为 FLOAT,尽管这有已知的舍入错误(和已知的解决方法)

Float rounding error: SQL Server rounding Error, Giving different values

关于sql - 尝试对 SQL Server 中的两列求和导致错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45600070/

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