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时失败”?
展开
 我来答
快乐编程教育
推荐于2018-04-13 · 专业IT知识分享,编程技巧分享
快乐编程教育
采纳数:342 获赞数:812

向TA提问 私信TA
展开全部
这个转换应该没有问题,你看看你的数据哈。
declare @var nvarchar(200)
set @var= '2004.6789 '
select cast(@var as numeric(16,6))

--结果
2004.678900

select cast(@var as numeric(16,2))
--结果
2004.68
匿名用户
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xntpii
2011-01-16 · TA获得超过1150个赞
知道小有建树答主
回答量:983
采纳率:50%
帮助的人:780万
展开全部
在你的变量前加上’让他变成字符串格式
sql="select * from adminfor where admname= ' " +admname+" ' "
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zfq308
2011-01-14 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:135万
展开全部
建议:

我从来不用numeric,我用Decimal数据类型。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nafaa50
2011-01-15 · TA获得超过685个赞
知道答主
回答量:407
采纳率:0%
帮助的人:260万
展开全部
在你的变量前加上’让他变成字符串格式
sql="select * from adminfor where admname= ' " +admname+" ' "
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式