SDO_FILTER
格式:
SDO_FILTER(geometry1, geometry2, params);
描述:
通过空间索引,根据给定的几何要素检索出具有空间相互关系的空间对象。这里的空间关系是指两个几何不分离,即Non-disjoint。【disjoint:表示两个几何的边和内部都不相交】
这个Sdo_Filter执行只是初始的空间过滤操作;二次的过滤操作将由SDO_RELATE操作子完成,它能确定空间对象的相交关系。
参数:
geometry1: 指需要查询表中几何列,该几何列务必已经建立空间索引。该列的数据类型为:MDSYS.SDO_GEOMETRY。
geometry2: 它值的可以是表中的几何,也可以是具体的几何对象(包括关联的几何对象变量、通过SDO_GEOMETRY构造函数的几何对象)。该列的数据类型也为:MDSYS.SDO_GEOMETRY。
params: 决定操作子的行为。数据类型为VARCHAR2。
该params具体有以下几种:
querytype: 有效的查询类型有:WINDOW和JOIN.。这是个必须的参数。
querytype =’ WINDOW’建议大部分情况下是使用该参数的。WINDOW’表明查询将执行表中所有候选geometry1,与geometry2进行比较。也就是说WINDOW将单个geometry1和所有的geometry2进行空间关系操作,并比较是否满足空间关系。
querytype =’ JOIN’很少用到。当你想比较该geometry1几何列和另外geometry2表中的几何列的话可使用JOIN。使用JOIN表明该geometry2必须建立的几何索引(具体参考使用说明)。
idxtab1【可选】:如果存在多个空间索引表,它指的是geometry1空间索引表对应的表名。
idxtab2【可选】:如果存在多个空间索引表,它指的是geometry1空间索引表对应的表名。只有当querytype =’ JOIN’才可以使用该参数。
返回值:
表达式SDO_FILTER(arg1, arg2, arg3) = ‘TRUE’中的True表明两个几何空间关系为:不相离;否则为False。
使用说明
这个SDO_FILTER操作子必须用在Where子句中,在sql语句中使用该格式:SDO_FILTER(arg1, arg2,arg3) = ‘TRUE’.。
如果