Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql server中三个浮点值相乘时出错_Sql_Sql Server - Fatal编程技术网

sql server中三个浮点值相乘时出错

sql server中三个浮点值相乘时出错,sql,sql-server,Sql,Sql Server,当我想将三个varchar列与转换为float相乘时,我得到 将数据类型varchar转换为float时出错 来自SQL Server的错误消息 我在脚本中也使用了isnumeric和round函数,但我也收到了错误我认为这是因为varchar中的点,sql server无法将其转换。如果需要使用varchar变量,则必须在乘以它之前强制转换该值。 使用强制转换或转换函数 select cast (@your_variable_or_column_here as float) 如果点字符存在问

当我想将三个
varchar
列与转换为float相乘时,我得到

将数据类型varchar转换为float时出错

来自SQL Server的错误消息


我在脚本中也使用了
isnumeric
和round函数,但我也收到了错误

我认为这是因为varchar中的点,sql server无法将其转换。

如果需要使用varchar变量,则必须在乘以它之前强制转换该值。 使用强制转换或转换函数

select cast (@your_variable_or_column_here as float)
如果点字符存在问题,请使用替换:

select cast (replace(@your_variable_or_column_here,'.',',') as float)

如果这些是数值-为什么哦,为什么它们存储为
varchar
您应该始终使用最合适的数据类型——毕竟,这就是它们的用途!请添加您的代码(ddl和select)和示例数据。我无法更改数据类型,这是客户的表。我的问题已解决,我的三列中有一列来自一个视图,该视图已在那里转换为浮点,我已再次转换。当我删除第二个转换时,我的问题已解决。谢谢