select
T1.Col1,
CASE T1.Col1
WHEN 99.95 THEN '18.97'
END
from Table T1
当我执行上面的SQL查询时,我收到以下错误消息:
Arithmetic overflow error converting varchar to data type numeric.
列T1.Col1
的数据类型为Varchar
,但保存的数据为:18.97。设计不佳但必须忍受它。
在发布此处之前,我尝试了很多方法来使代码正常工作。对于ex我试图将数据转换为varchar,十进制也试图看看我是否可以使用字符而不是十进制值,也尝试使用cast函数。
请帮忙。
这是SQL Server 2005.很抱歉没有先分享这个。
答案 0 :(得分:0)
尝试以下任何一项:
尝试使用单引号作为案例值(因为T1.col1是varchar)
select
T1.Col1,
CASE T1.Col1
WHEN '99.95' THEN '18.97'
END
from Table T1
尝试使用TO_NUMBER函数检查案例条件之前将varchar字符串(T1.col1)转换为数字
select
T1.Col1,
CASE TO_NUMBER(T1.Col1, '99.99')
WHEN 99.95 THEN '18.97'
END
from Table T1