2013-03-01 9 views
0

테이블에서 특정 다각형에있는 점을 선택하려고합니다.
여기 내 테이블 TEST1 지오메트리 유형의 DATA4 열이과에는 다음이 포함SQLintersects 쿼리가 제대로 작동하지 않습니다.

2,3 
5,6 
7,10 

것은 내가 다음 쿼리에게 그것의 반환 빈 행을하려합니다. 오류를 해결하도록 도와주세요.

DECLARE @g geometry; 
SET @g = geometry::STGeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))', 0); 
SELECT  * 
FROM   test1 
WHERE data4.STIntersects(@g) = 1; 

가 나는 또한 시도 :

WHERE @g.STContains(geometry::STGeomFromText(test1.data4, 0))='True' 

이 잘 작동하지 않았다.

답변

1

질문에 태그가 붙어있는 것처럼 MySQL에 관해 이야기하고 있다면 완전히 잘못된 방법을 사용하고있는 것입니다. STGeomFromText는 SQL Server 기능입니다.

원하는 것을 수행하는 MySQL query은 간단합니다. 여기에 그냥 보너스로

An SQLfiddle for testing

SELECT * 
FROM test1 
WHERE MBRContains(GeomFromText('Polygon((0 0,0 4,4 4,4 0,0 0))'), data4) 
는 SQL Server 용으로 작성하는 방법이다;

SELECT * 
FROM test1 
WHERE geometry::STGeomFromText('Polygon((0 0,0 4,4 4,4 0,0 0))',0) 
      .STContains(data4) = 1 

Another SQLfiddle.

+0

도움 주셔서 감사합니다. SQL Server 기능을 위해 작성했습니다. – PhantomM

관련 문제