Вам необходимо сохранить широту и долготу в вашей таблице Location
, а также вам нужно будет указать широту и долготу ваших почтовых индексов.
SQL Server может работать только с координатами.Возможно, вы захотите использовать службу обратное геокодирование для получения координат ваших местоположений.
В любом случае, так может выглядеть ваш геопространственный запрос в SQL Server 2008:
DECLARE @some_point geography;
SET @some_point = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT
Order.Product
FROM
Order
INNER JOIN
Location ON (Location.ID = Order.LocationID)
WHERE
Location.Position.STDistance(@some_point) < 16093;
Выше предполагается, что в вашей таблице Location
будет поле типа geography , которое называется Position
.