我的用户拥有纬度和经度。 我想根据我的位置得到前50个人。
例如
CREATE procedure [dbo].[GetProfilesNearBy]
@UserID int,
@UserLat float,
@UserLong float
AS
BEGIN
SELECT TOP 50 * from Users ....
END
GO
其中@ UserID,@ UserLat和@Userlong是发送请求的用户 UserLat例如是31.97542,UserLong例如是35.911285
如何获得最接近的50?
答案 0 :(得分:3)
如果您正在使用SQL Server 2008或更高版本,则可以使用地理数据类型使其更加轻松:
示例:
DECLARE @user geography = 'POINT(31.97542 35.911285)'
SELECT TOP 50 FROM Users ORDER BY @user.STDistance(Position)
答案 1 :(得分:0)
试试这个
SELECT top 50 *
FROM TableName
where ColumnName >= Position