如何找到如果一个点或多边形是另一种多边形的内部使用Oracle空间SQL查询

下面是该方案;

我有一个表(STATE_TABLE),其包含一个空间类型(SDO_GEOMETRY),它是多边形(的说的状态),我有另一个表(UNIVERSITY_TABLE),其含有空间数据(SDO_GEOMETRY)(点/多边形),其包含大学;

现在如何找到如果选择大学(的)是在给定的国家使用SQL SELECT语句。

主要我想在一个地理围栏以定位给定对象(一个或多个)的存在。

感谢。

有帮助吗?

解决方案

您会需要为使用SDO_CONTAINS或SDO_RELATE与面具“包含”

请参阅位于文档

SDO_CONTAINS http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 获得

SDO_RELATE http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531

要么你会做类似下面的其中之一(假设你的空间信息包含在一个名为“GEOM”列在空间索引):

select 
    ST.NAME, UT.UNIVERSITY_NAME
from
    STATE_TABLE ST
    INNER JOIN UNIVERSITY_TABLE UT
      ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'

您得原谅我,因为我具体不记得了这个正确的语法,我不知道,如果上面的加盟将在所有正常工作。这应该是足够你指出,虽然方向是正确的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top