在 varchar 字段上使用 SQL 服务器算术运算符
Using SQL Server Arithmetic Operators on varchar Field
我有一个第三方数据源,其中 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
产生这个错误
Arithmetic overflow error converting data type numeric
将下面的语句写成小数不会产生任何错误,但是在这个语句中添加算术运算符却让我望而却步,我的尝试都导致了错误。
SELECT
CAST(AverageCost AS Decimal(10, 2)) AS Price
FROM
dbo.inventory
在此先感谢您的帮助。
如果 2012+ 使用 Try_Convert()
Try_Convert() 将捕获任何转换错误作为 NULL
SELECT try_convert(float,AverageCost) * 2.3 AS Price
FROM dbo.inventory
Returns
Price
388.7
74.75
127.075
19.366
678.5
0
7.666659
查看可能导致转换错误的值
Select *
From iteminventory
Where try_convert(float,AverageCost) is null
我有一个第三方数据源,其中 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
产生这个错误
Arithmetic overflow error converting data type numeric
将下面的语句写成小数不会产生任何错误,但是在这个语句中添加算术运算符却让我望而却步,我的尝试都导致了错误。
SELECT
CAST(AverageCost AS Decimal(10, 2)) AS Price
FROM
dbo.inventory
在此先感谢您的帮助。
如果 2012+ 使用 Try_Convert()
Try_Convert() 将捕获任何转换错误作为 NULL
SELECT try_convert(float,AverageCost) * 2.3 AS Price
FROM dbo.inventory
Returns
Price
388.7
74.75
127.075
19.366
678.5
0
7.666659
查看可能导致转换错误的值
Select *
From iteminventory
Where try_convert(float,AverageCost) is null