读书人

取最接近的一条记录,该怎么解决

发布时间: 2012-04-10 21:03:56 作者: rapoo

取最接近的一条记录
表有3列
坐标X 坐标Y 记录
1.1 2.3 xxxx
................


这些坐标有的连续 有的不连续

现在给出 坐标 90.45 20.22

如果有这个坐标那么就返回这条记录 如果没有就返回最接近的坐标的记录

请问怎么写这条语句

(PS:这个表有980w条记录)

[解决办法]

SQL code
select top 1 *from tborder by abs(90.45-[坐标X])+abs(20.22-[坐标Y])
[解决办法]
SQL code
select top 1 *from taborder bysqrt(power(坐标X-90.5,2)+power(坐标Y-20.22,2))
[解决办法]
SQL code
select top 1 * from tb order by ((x - 90.45 )*(x - 90.45 ) + (y - 20.22)*(y - 20.22)) 

读书人网 >SQL Server

热点推荐