我正在尝试转换进入插入的一个值。我在将数据类型varchar
转换为numeric
时遇到错误。我怎么能进一步证明这一点呢?我最好使用演员吗?我对此有点新意,所以我知道谁是最好的方法。
这是
行CONVERT(DECIMAL(10, 3),
AVG(CASE R.ITEM
WHEN 'KD_ITEM' THEN CONVERT(DECIMAL(10, 3), R.RN2) * 100.00
ELSE NULL
END)) AS [KD_ITEMAVG]
它失败了,错误是:
将数据类型varchar转换为数字时出错。
答案 0 :(得分:0)
CAST()
和CONVERT()
做同样的事情,除了CONVERT()
有一个可选的第三个参数。
如果您的数据可能无效,请使用TRY_CONVERT()
代替CONVERT()
:
TRY_CONVERT(DECIMAL(10,3),
AVG(CASE R.ITEM WHEN 'KD_ITEM' THEN TRY_CONVERT(DECIMAL(10,3), R.RN2)*100.00
END)
) AS [KD_ITEMAVG]
答案 1 :(得分:0)
您可以使用TRY_CONVERT
(SQL Server 2012及更高版本):
TRY_CONVERT(DECIMAL(10,3),
AVG(CASE R.ITEM WHEN 'KD_ITEM'
THEN TRY_CONVERT(DECIMAL(10,3),R.RN2)*100.00
ELSE NULL END))
AS [KD_ITEMAVG]