Question

j'essaie de faire une requête spatiale dans SQL 2008 - > pour une liste donnée de points d'intérêt (points d'intérêt, données long / lat GEOGRAPHY), dans quels codes postaux existent-ils (données multipolygones STIntersects).

Donc, voici la requête que j'ai essayée, mais sa syntaxe est incorrecte: -

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

Cela signifie donc que je passe une liste CSV des identifiants de points d'intérêt et les scinde . Ce n'est pas un problème .. c'est ma sous-requête dans le <=>. C'est invalide.

Alors ... avez-vous des suggestions?

Était-ce utile?

La solution

Que diriez-vous de:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top