我试图在SQL做空间查询2008 - >对的POI(兴趣点,经度/纬度GEOGRAPHY数据),其邮政编码做他们(MULTIPOLYGON GEOGRAPHY数据)存在的一个给定的名单

这就是我试图查询,但它的语法不正确: -

SELECT PostCodeId, ShapeFile
FROM Postcodes a
WHERE a.ShapeFile.STIntersects(
    SELECT PointOfInterest
    FROM PointOfInterests
    WHERE PointOfInterestId IN (SELECT Item from dbo.fnSplit(@PoiIdList, ','))

因此,这意味着我通过在的设施ID的一个 CSV列表,并将它们分割 。这不是一个问题..这是我在STIntersects子查询。这是无效的。

所以..任何建议人

有帮助吗?

解决方案

如何:

SELECT a.PostCodeId, a.ShapeFile
FROM (SELECT Item from dbo.fnSplit(@PoiIdList, ',')) AS POI_IDs
INNER JOIN PointOfInterests
    ON PointOfInterests.PointOfInterestId = POI_IDs.Item
INNER JOIN Postcodes a
    ON a.ShapeFile.STIntersects(PointOfInterests.PointOfInterest) = 1
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top