首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据类型nvarchar转换为数字时出错。尝试转换和替换

将数据类型nvarchar转换为数字时出错。尝试转换和替换
EN

Stack Overflow用户
提问于 2018-11-27 20:02:47
回答 2查看 1.1K关注 0票数 1

我正试图使用一个代码添加我的预测的总和。

代码语言:javascript
复制
select 
    sum(cast(replace(replace(ZFREEGOOD, ',', ''), ' ', '') as decimal(22,8))) 
from 
    TEMP_GBR_History_1611

我一直在犯错误

将数据类型nvarchar转换为数字时出错。

我使用一个case语句来判断哪些行失败了。这些就是其中的一些

对找到解决方案有很大帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-27 20:09:20

您不是在处理空白情况,这适用于测试数据:

代码语言:javascript
复制
select sum(cast(case when replace(replace(ZFREEGOOD,',',''),' ','') = '' then '0' else replace(replace(ZFREEGOOD,',',''),' ','') end as decimal(22,8))) from TEMP_GBR_History_1611
票数 2
EN

Stack Overflow用户

发布于 2018-11-27 20:08:13

一种选择是使用try_convert(money,...),它倾向于稍微宽容一点。

示例

代码语言:javascript
复制
Select AsMoney = try_convert(money,' 27,300')   -- works!
      ,AsInt   = try_convert(int,' 27,300')
      ,AsDec   = try_convert(decimal(10,2),' 27,300')
      ,AsFloat = try_convert(float,' 27,300')

返回

代码语言:javascript
复制
AsMoney     AsInt   AsDec   AsFloat
27300.00    NULL    NULL    NULL
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53507273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档