SQLServer中decimal 类型的问题

如果一张表里有两个字段 id 和 num , id 是varchar ,num 是decimal
insert into table (id,num) value ('123','')
报 {服务器: 消息 8114,级别 16,状态 5,行 1
将数据类型 varchar 转换为 numeric 时出错。}
如果我num字段要是空值要怎么插入?
字段不确定有没有值,有时候有,有时候没有
to 数据库强者:不能写死
我前面没说清楚,我想知道是有没有在sql里可以判断一下

现在要在程序里改动太麻烦,sql相对工作量少一点

我也试了一下,空字符串''转换成decimal类型时是会出错.
所以在转换之前需要对原始数据进行判断,如果是空字符串就转为0或null.
参考代码:
declare @num decimal(8,2)
declare @tmp varchar(10)

set @tmp='234.567'

if @tmp=''
set @num=null
--或者set @num=0
else
set @num=@tmp

insert into table(id,num) values('123',@num)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-12-19
insert into table (id,num) value ('123, null) 使用这样插入数据就不会报错吧
第2个回答  2007-12-19
发站内信给我!

我都被你搞糊涂了!本回答被提问者采纳
相似回答