小编Dan*_*son的帖子

从varchar到numeric的SQL Server CAST失败并出现错误

我有一列包含9位数字值的数据,但该列被定义为varchar.我需要将字段CAST为数值,这样我就可以将列的总和除以100

select CAST(field1 as numeric(9,2)) / 100 from table;
Run Code Online (Sandbox Code Playgroud)

运行查询时出现以下错误:将varchar转换为数据类型numeric的算术溢出错误.

如果我从varchar - > int - > numeric执行双CAST,则CAST可以正常工作.例如

select CAST(CAST(field1 as int) as numeric(9,2)) / 100 from table;
Run Code Online (Sandbox Code Playgroud)

有没有理由为什么来自varchar的单个CAST - > numeric会导致SQL错误,但双CAST是否有效?

sql-server casting

5
推荐指数
1
解决办法
8万
查看次数

标签 统计

casting ×1

sql-server ×1