Sql server 2005 如何使用存储过程中动态生成的值返回其他列?
我在SQL2005中有一个存储过程,它使用Haversine公式计算距离。一切都很顺利,但我想用我的结果集返回计算出的距离。如何添加该列/值对Sql server 2005 如何使用存储过程中动态生成的值返回其他列?,sql-server-2005,haversine,Sql Server 2005,Haversine,我在SQL2005中有一个存储过程,它使用Haversine公式计算距离。一切都很顺利,但我想用我的结果集返回计算出的距离。如何添加该列/值对 DECLARE @Longitude DECIMAL(18,8), @Latitude DECIMAL(18,8), @MinLongitude DECIMAL(18,8), @MaxLongitude DECIMAL(18,8), @MinLatitude DECIMAL(18,8),
DECLARE @Longitude DECIMAL(18,8),
@Latitude DECIMAL(18,8),
@MinLongitude DECIMAL(18,8),
@MaxLongitude DECIMAL(18,8),
@MinLatitude DECIMAL(18,8),
@MaxLatitude DECIMAL(18,8),
@WithinMiles INT
Set @Latitude = -122.25336930
Set @Longitude = 37.50002600
Set @WithinMiles = 20
-- Calculate the Max Lat/Long
SELECT @MaxLongitude = dbo.LongitudePlusDistance(@Longitude, @Latitude, @WithinMiles),
@MaxLatitude = dbo.LatitudePlusDistance(@Latitude, @WithinMiles)
-- Calculate the min lat/long
SELECT @MinLatitude = 2 * @Latitude - @MaxLatitude,
@MinLongitude = 2 * @Longitude - @MaxLongitude
SELECT Top 10 *
FROM Location
WHERE LocationLongitude Between @MinLongitude And @MaxLongitude
And LocationLatitude Between @MinLatitude And @MaxLatitude
And dbo.CalculateDistance(@Longitude, @Latitude, LocationLongitude, LocationLatitude) <= @WithinMiles
ORDER BY dbo.CalculateDistance(@Longitude, @Latitude, LocationLongitude, LocationLatitude)
--Return the result of dbo.CalculateDistance
有什么建议吗?包括问这个问题的正确方法
哦,是的,这不是存储过程,因为我在直接处理查询,这就是我粘贴在这里的内容。我想这就是您的要求
SELECT Top 10 *,dbo.CalculateDistance(@Longitude, @Latitude, LocationLongitude, LocationLatitude) as 'Calculated Distance'
FROM Location
WHERE LocationLongitude Between @MinLongitude And @MaxLongitude
And LocationLatitude Between @MinLatitude And @MaxLatitude
And dbo.CalculateDistance(@Longitude, @Latitude, LocationLongitude, LocationLatitude) <= @WithinMiles
ORDER BY dbo.CalculateDistance(@Longitude, @Latitude, LocationLongitude, LocationLatitude)
明亮的这正是我想要的。这有一个技术名称吗?不,我不知道,你可以添加文字或变量到你的选择列表中你想要的所有“计算距离”字符串称为allias