我有这个选择查询:
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)
但我认为我的代码编写得很糟糕。 如果有人能给我一个例子或其他东西,我将不胜感激!
对不起我的英语,我希望这是可以理解的。并提前感谢!!
答案 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