Sql Server 中nvarchar和numeric数据转换问题?
2005版本用convert(numeric(5,4),a)将nvarchar(100)转换成numeric(5,4)为什么提示“在将nvarchar值'0.15'转换成...
2005版本 用convert(numeric(5,4),a)将nvarchar(100)转换成numeric(5,4)为什么提示
“在将nvarchar值'0.15'转换成int时失败”?
跟int有关系吗?
是这样:我有个表table1里有个字段a,类型是nvarchar(100),里面存的都是数字。我想把这个字段插到另外一张现有表table2的相应字段b里,类型是numeric(5,4)。
我用的语句是:
insert into table2(b) select convert(numeric(5,4),isnull(case then a='' then 0 else a end,0) )from table1
报错是:“在将nvarchar值'0.15'转换成int时失败”? 展开
“在将nvarchar值'0.15'转换成int时失败”?
跟int有关系吗?
是这样:我有个表table1里有个字段a,类型是nvarchar(100),里面存的都是数字。我想把这个字段插到另外一张现有表table2的相应字段b里,类型是numeric(5,4)。
我用的语句是:
insert into table2(b) select convert(numeric(5,4),isnull(case then a='' then 0 else a end,0) )from table1
报错是:“在将nvarchar值'0.15'转换成int时失败”? 展开
6个回答
2011-01-14
展开全部
关键在isnull中,里面的0,sql会认为数据为int型,再转换成numeric时就有问题了,把0改为0.0可以改成这样:
insert into table2(b) select convert(numeric(5,4),isnull(case a when'' then 0.0 else a end,0.0) )from table1
insert into table2(b) select convert(numeric(5,4),isnull(case a when'' then 0.0 else a end,0.0) )from table1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在你的变量前加上’让他变成字符串格式
sql="select * from adminfor where admname= ' " +admname+" ' "
sql="select * from adminfor where admname= ' " +admname+" ' "
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议:
我从来不用numeric,我用Decimal数据类型。
我从来不用numeric,我用Decimal数据类型。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在你的变量前加上’让他变成字符串格式
sql="select * from adminfor where admname= ' " +admname+" ' "
sql="select * from adminfor where admname= ' " +admname+" ' "
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询