Wie kann ich tun, um diese Spatial-Abfrage in SQL 2008?
-
20-08-2019 - |
Frage
Ich versuche, eine räumliche Abfrage in SQL zu tun. 2008 -> für eine bestimmte Liste von POI (Point of Interest, Long / lat GEOGRAPHY
Daten), die Postleitzahlen gibt es sie in (Multipolygon GEOGRAPHY
Daten)
Das ist also die Abfrage Ich habe versucht, aber es ist syntaktisch falsch: -
SELECT PostCodeId, ShapeFile
FROM Postcodes a
WHERE a.ShapeFile.STIntersects(
SELECT PointOfInterest
FROM PointOfInterests
WHERE PointOfInterestId IN (SELECT Item from dbo.fnSplit(@PoiIdList, ','))
Dies bedeutet also, i in einer csv Liste der POI-IDs übergeben und teilen sie . Das ist kein Problem .. es ist meine Unterabfrage in den STIntersects
. Das ist ungültig.
Also .. irgendwelche Vorschläge Leute?
Lösung
Wie wäre:
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow