我写这个SQL脚本:重构SQL脚本
DECLARE @location geography
DECLARE @radius int
SET @location = (SELECT Location FROM Hydrants WHERE HydrantId = 2)
SET @radius = (SELECT Radius FROM Hydrants WHERE HydrantId = 2)
SELECT *
FROM Sites
WHERE @location.STDistance(location) < @radius
ORDER BY SiteId ASC
我这样做是为了重构它
SELECT *
FROM Sites, Hydrants
Inner Join Hydrants.Location.STDistance(Sites.Location) < Hydrants.Radius
WHERE Hydrants.HydrantId = 2
ORDER BY Sites.SiteId ASC;
,但没有运气。
任何建议将受到欢迎。
问题是什么?我的头脑阅读设备今天在弗里茨。 – JohnFx 2012-02-23 20:24:57
通常,包含您正在使用的特定RDBMS是一个好主意。这个SQL Server,如果是的话,是什么版本? – Dan 2012-02-23 20:25:16
@DanNewhouse我认为只有SQL Server具有“geography”数据类型,从2K8开始。 – Yuck 2012-02-23 20:34:47