Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
在varchar字段上使用SQL Server算术运算符_Sql_Sql Server_Tsql_Casting_Arithmetic Expressions - Fatal编程技术网

在varchar字段上使用SQL Server算术运算符

在varchar字段上使用SQL Server算术运算符,sql,sql-server,tsql,casting,arithmetic-expressions,Sql,Sql Server,Tsql,Casting,Arithmetic Expressions,我有一个第三方数据源,它的varchar(255)列只包含数字。此列是项目的成本。我希望能够将此列乘以系数(2.3)以获得默认售价,但我无法在varchar列上应用算术运算符,并且CAST函数在与算术运算符组合时产生错误 此语句生成以下示例结果: SELECT AverageCost FROM dbo.inventory 169 32.5 55.25 8.42 295 0 3.33333 本声明: SELECT AverageCost * 2.3 AS Pri

我有一个第三方数据源,它的
varchar(255)
列只包含数字。此列是项目的成本。我希望能够将此列乘以系数(2.3)以获得默认售价,但我无法在
varchar
列上应用算术运算符,并且
CAST
函数在与算术运算符组合时产生错误

此语句生成以下示例结果:

SELECT 
    AverageCost
FROM 
    dbo.inventory
  • 169
  • 32.5
  • 55.25
  • 8.42
  • 295
  • 0
  • 3.33333
本声明:

SELECT 
    AverageCost * 2.3 AS Price
FROM 
    dbo.iteminventory
产生此错误

转换数据类型数值时出现算术溢出错误

按如下方式编写语句以转换为十进制不会产生任何错误,但将算术运算符添加到该语句中却让我不知所措,我的所有尝试都导致了错误

SELECT 
    CAST(AverageCost AS Decimal(10, 2)) AS Price
FROM 
    dbo.inventory

提前感谢您的帮助。

如果2012+使用请尝试转换()

Try_Convert()会将任何转换错误捕获为NULL

SELECT try_convert(float,AverageCost) * 2.3 AS Price 
FROM   dbo.inventory
返回

Price
388.7
74.75
127.075
19.366
678.5
0
7.666659
查看可能导致转换错误的值

Select *
 From  iteminventory
 Where try_convert(float,AverageCost) is null

@B.L.很乐意帮忙