Расстояние между функцией sql и порядком по ближайшему
Я использую эту функцию, чтобы получить события в пределах 30 миль, это почти то же самое, что и ужин с ботаником. Но как я могу заказать их у "ближайшего"..?
ALTER FUNCTION [dbo].[NearestEvents]
(
@lat real,
@long real
)
RETURNS TABLE
AS
RETURN
SELECT Events.ID
FROM Events
WHERE dbo.DistanceBetween(@lat, @long, Latitude, Longitude) <30
1 ответ
Добавьте его в свой список SELECT.
SELECT Events.ID,
dbo.DistanceBetween(@lat, @long, Latitude, Longitude) as distance
FROM Events
WHERE dbo.DistanceBetween(@lat, @long, Latitude, Longitude) <30
ORDER BY distance
- Так как он все еще не работает для OP, хорошим способом отладки хранимой процедуры является захват параметров. Попробуйте это с помощью Query Analyzer и убедитесь, что вы получите:
DECLARE @lat = varchar(100);
DECLARE @long = vavhar(100);
SET @lat = 'XXXXX';
SET @long = 'XXXXX';
SELECT Events.ID,
dbo.DistanceBetween(@lat, @long, Latitude, Longitude) as distance
FROM Events
WHERE dbo.DistanceBetween(@lat, @long, Latitude, Longitude) <30
ORDER BY distance;