我收到以下错误
Msg 8115,Level 16,State 6,Line 5< BR> 将varchar转换为数据类型numeric的算术溢出错误。
这是说明我的问题的示例DDL。如何设置可以实现此类的查询?
Declare @Teetotal As Table (ramalad varchar(500))
Insert Into @Teetotal (ramalad) Values ('200.4'), ('300.12')
Select ramalad
,ManipulatedData = CAST(ramalad AS DECIMAL(16,2)) + ' - ' + (CAST(ramalad As DECIMAL(10,2))/25)*3
FROM @Teetotal
答案 0 :(得分:1)
这是因为您尝试将字符串添加到小数:
CAST(ramalad AS DECIMAL(16,2)) + ' - '
SQL不知道如何将' - '
转换为数字,因此会引发错误。
也许你想要的是:
ManipulatedData = ramalad + ' - ' + CAST( (CAST(ramalad As DECIMAL(10,2))/25) *3 as varchar)