두 테이블 중 하나에는 개체 위치가있는 기하학 열과 기하학적 형식으로 된 다시 점 좌표가있는 테이블 (SQL Server)이 있습니다. 첫 번째 테이블에서 가장 가까운 개체를 찾으려면 두 번째 테이블의 각 지점이 필요합니다. 나는 하나의 지점이 작업을 수행 할 수있는 쿼리를 가지고 :SQL - 레코드 당 최적의 동작 수행
이DECLARE @g geometry = geometry::STGeomFromText('POINT
(1 2,)',0);
SELECT TOP(1) geom.ToString()
FROM [T1].[dbo].[table_shapes]
WHERE geom.STDistance(@g) IS NOT NULL
ORDER BY geom.STDistance(@g);
지금이 나에게 특정 시점에 가장 가까운 테이블에서 레코드를 줄 것이다,하지만 나는 각 포인트가 가장 가까운 형태를 찾으려면 포인트를 하드 코딩하는 대신 포인트를 사용하는 내 테이블을 만들고 새 테이블에 결과 - 포인트 관련 모양을 넣고 싶습니다. 각 레코드를 반복하고 위의 쿼리를 수행하는 일종의 함수에 대해 생각하고 있지만이 방법이 느려질 수 있으므로 최선의 방법이 아닐 수도 있습니다 ... 제안 사항 JOIN을 사용하면 어떨까요?