Я использую эту функцию для получения событий в радиусе 30 миль, в значительной степени такой же, как и ботанический ужин. Но как я могу их заказать «ближе»?distancebetween sql function and order by ближайший
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
Если вы хотите одни и те же результаты, но по заказу шкаф, вам, вероятно, нужно хранить данные в временную таблицу, которая включает в себя столбец DistanceBetween, а затем выберите результаты упорядочены в столбце DistanceBetween. Это дополнительная работа, потому что расстояние между ними рассчитывается на лету. – Zachary