Расстояние между функцией 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;
Другие вопросы по тегам