سؤال

أحاول إجراء استعلام مكاني في SQL 2008 -> للحصول على قائمة معينة من POI (نقطة الاهتمام ، Long/Lat GEOGRAPHY البيانات) ، والتي توجد رموزها التي توجد فيها (متعددة GEOGRAPHY بيانات).

لذلك هذا هو الاستعلام الذي جربته ، لكنه غير صحيح من الناحية النحوية:--

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

وهذا يعني أنني أمر في قائمة CSV من معرف POI وتقسيمها. هذه ليست مشكلة .. إنها انبعاثتي الفرعية في 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