首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-04-10 
取最接近的一条记录表有3列坐标X 坐标Y 记录1.12.3xxxx................这些坐标有的连续 有的不连续现在

取最接近的一条记录
表有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)) 

热点排行