在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.很乐意帮忙