SQL - 在运行时选择-SQL中放置2个小数位

时间:2017-09-13 17:36:21

标签: sql sql-server decimal

我有这个选择查询:

SELECT Nombre, Tipo, Descripcion,Abierto,Cerrado, Latitud, Longitud,
SQRT( POW( 69.1 * ( Latitud - 19.55385 ) , 2 ) 
+ POW( 69.1 * ( - 99.21716 - Longitud ) 
* COS( Latitud / 57.3 ) , 2 ) ) AS distance
FROM Clientes

它工作正常,但它有时返回一个非常长的数字(许多小数位),我希望它只返回两个小数点的值。

我已经尝试过了

CONVERT(DECIMAL(10,2),distance)

但我认为我的代码编写得很糟糕。 如果有人能给我一个例子或其他东西,我将不胜感激!

对不起我的英语,我希望这是可以理解的。并提前感谢!!

1 个答案:

答案 0 :(得分:1)

使用函数Round()进行数学轮次和Cast来调整精度

前:

select Cast(ROUND(- 99.2171600000009669 ,2) as decimal(10,2))

结果

-99.22

在您的查询中:

 SELECT Nombre, Tipo, Descripcion,Abierto,Cerrado, Latitud, Longitud,
 Cast(ROUND(SQRT( POW( 69.1 * ( Latitud - 19.55385 ) , 2 ) 
+ POW( 69.1 * ( - 99.21716 - Longitud ) 
* COS( Latitud / 57.3 ) , 2 ) ) ,2) as decimal(10,2)) AS distance
FROM Clientes 
Order By Distance Desc