2009-01-31 9 views
3

나는 POIC (관심 지점, long/lat GEOGRAPHY 데이터)의 주어진 목록에 대해 sql 2008 -> 공간 쿼리를 수행하려고하는데, postcodes는 다중 다각형 GEOGRAPHY 데이터에 존재합니다.Sql 2008에서이 공간 쿼리를 수행하려면 어떻게해야합니까?

그래서이 내가 시도 질의이지만 문법적으로 잘못된이다 : -

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

그래서이 나는 csv list of POI Id's and split them 전달을 의미한다. 그게 문제가 아니에요 ... STIntersects의 하위 쿼리입니다. 그건 잘못되었습니다.

그래서 .. 제안 사항은 무엇입니까?

답변

4

방법에 대해 :

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 
+0

감사 힙 : 내가 유는 STIntersects에 두 개의 테이블을 조인 할 수 몰랐어요! –

+0

내 유일한 질문은 실제로 성능과 그것을하는 가장 좋은 방법입니다. 그리고 지금은 그것이 내 이해를 넘어선 것입니다 (Spatial SQL은 새로운 것입니다) –