كيف يمكنني القيام بهذا الاستعلام المكاني في SQL 2008؟
-
20-08-2019 - |
سؤال
أحاول إجراء استعلام مكاني في 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
لا تنتمي إلى StackOverflow