MS SQL SERVER中percentile函数返回float值如何保留4位小数
MS SQL Server percentile函数结果四舍五入保留4位小数的实现方案
你可以直接使用SQL Server原生的ROUND()函数包裹percentile_disc的返回结果,该函数的第二个参数传入4即可指定保留4位小数。
你原SQL修改后如下:
SELECT DISTINCT ROUND( percentile_disc(0.5) WITHIN GROUP (ORDER BY Number) OVER(), 4 ) FROM [TABLE]
补充说明
- 上述SQL中的
[TABLE]请替换为你的实际业务表名,若表名不属于SQL Server保留关键字,也可以省略方括号。 - 如果你需要避免float类型的精度隐患,也可以额外嵌套
CAST函数将结果转换为固定精度的decimal类型:
SELECT DISTINCT CAST( ROUND(percentile_disc(0.5) WITHIN GROUP (ORDER BY Number) OVER(), 4) AS DECIMAL(20,4) ) FROM [TABLE]
内容的提问来源于stack exchange,提问作者Danyal Danish
相关产品推荐
相关产品推荐

