SQL查询-移动小数点



我有一个表,其中有一列,我需要将值格式化为单一形式。

结果

1258
1248
1.18761801719666
1.1763299703598
1.21516096591949

像1258这样的值是正确的。我需要像1.18761801719666这样的值来获得类似的形式(1188(,最后一个数字要四舍五入。

我使用时:

SELECT CAST(Results as DECIMAL(18,4)) as Results
FROM [Table]

所以我已经达到了预期结果的一半,但我不知道。

示例数据:

1258
1248
1.18761801719666
1.1763299703598
1.21516096591949

我的期望:

1258
1248
1187
1177
1215

1.1881188是不同的数字,而不仅仅是同一数字的不同格式。所以你需要一些实际的数学运算,而不仅仅是格式化。

例如,如果规则是";如果数字小于10;,然后你可以写CASE WHEN Results < 10 THEN Results * 1000 ELSE Results END

然后,您可以将其强制转换为整数,以丢失小数点后的其余位置:

SELECT CAST(CASE WHEN Results < 10 THEN Results * 1000 ELSE Results END as INT)

最新更新