我正在尝试转换nvarchar为,decimal (18,2)并且我收到以下消息:
消息8115,级别16,状态6,行2
算术溢出错误将nvarchar转换为数据类型numeric.
CAST是:CAST(bm_onnet AS decimal(18,2)) as bm_onnet_corr,仅当值只有最多3位小数时才起作用,对下面的值不起作用:
21.8333333333333333333333333333333333333
Run Code Online (Sandbox Code Playgroud)
我该如何修改我的SELECT?
使用圆形功能
例
declare @v nvarchar(100) = '21.8333333333333333333333333333333333333'
select convert(decimal(18,2),round(@v,2))
Run Code Online (Sandbox Code Playgroud)
选择看起来像这样
SELECT CAST(round(bm_onnet,2) AS decimal(18,2)) as bm_onnet_corr
Run Code Online (Sandbox Code Playgroud)