我只需要从SQL Server中的十进制值中选择两位数字
16.987490 --> 16.98
8.0189918 --> 8.01
34.5566901 --> 34.55
最简单的方法是减去 0.005 并使用 round()
、 str()
或 cast()
:
select round(val - 0.005, 2)
您可以使用ROUND
select CAST(ROUND (16.987490 , 2 , 1 ) as NUMERIC(18,2))
select CAST(ROUND (8.0189918 , 2 , 1 ) as NUMERIC(18,2))
select CAST(ROUND (34.5566901 , 2 , 1 ) as NUMERIC(18,2))
输出
16.98
8.01
34.55
declare @dec decimal(15,5)
set @dec = 16.987490
select cast(@dec as decimal(19,2))
因此,解决方案是"强制"转换为 2 级。
解决方案 2 因为第一个不起作用:
declare @dec decimal(15,5)
set @dec = 8.0189918
select cast(substring(cast(@dec as varchar(50)), 0, CHARINDEX('.', cast(@dec as varchar(50)), 1) + 3) as decimal(19,2))