sql-server - 将数据类型 nvarchar 转换为数值时出错。尝试转换和替换
问题描述
我正在尝试使用代码添加我的预测总和
select
sum(cast(replace(replace(ZFREEGOOD, ',', ''), ' ', '') as decimal(22,8)))
from
TEMP_GBR_History_1611
我不断收到错误
将数据类型 nvarchar 转换为数值时出错。
我使用 case 语句来确定哪些行失败。这些是其中一些
对获得解决方案有很大帮助
解决方案
一种选择是使用try_convert(money,...)
它往往更宽容一点。
例子
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')
退货
AsMoney AsInt AsDec AsFloat
27300.00 NULL NULL NULL
推荐阅读
- r - 根据 R 中的日期列创建 3 天 HR 斜率列
- pandas - 我可以创建一个每次达到 cumsum 阈值时从 0 重置的参考索引列吗
- python - 使用 Pandas MultiIndex 数据写入多文件 CSV
- go - 使用三重 DES 加密创建 RSA 私钥
- android - Android MaterialDatePicker 文本出现在错误的位置
- php - 编译失败,0线索怎么办
- list - Flutter:添加动态 TextFormField 以将数据上传到列表
- python - Pandas 数据框到嵌套字典,名称空间为 None
- java - 如果编译时出现条件错误 - 具体问题
- java - Nginx “400 请求标头或 Cookie 太大”问题