Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何使用存储过程中动态生成的值返回其他列?_Sql Server 2005_Haversine - Fatal编程技术网

Sql server 2005 如何使用存储过程中动态生成的值返回其他列?

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),

我在SQL2005中有一个存储过程,它使用Haversine公式计算距离。一切都很顺利,但我想用我的结果集返回计算出的距离。如何添加该列/值对

 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