目前我正在尝试将 Oracle 数据库上的旧查询过滤器升级到 SQL 服务器。旧查询如下:
select * from table.a a, table.b b WHERE sdo_relate(a.shape, b.shape, 'mask=anyinteract')='TRUE'
现在我发现 sdo_relate 不是 SQL Server 的函数。从互联网上我可以看出我需要使用 ST_Relate。但是我找不到正确的方法来查询这个。
我想要的答案: 我想要完全相同的查询,其中几何 b(多边形)边界内的表 a 中的所有矢量特征都被选择或剪切。
特别之处: 还有一个额外的问题。而表 B 专门用于我需要的边界的几何形状(多边形)。然而,这已更改为多个边界,所以现在我需要表 B 中的特殊层(选择)。
有谁可以帮助我,并请解释如何在 SQLserver 上构建此 SQL 过滤器。
查询过滤器在 ArcGIS Pro 中使用。
你只需做
someGeometryColumn.STRelate(otherColumn, ...
。我不确定掩码语法,它使用 DE9IM,我不知道这与你想要的有什么关系。
select *
from tablea a
join tableb b on a.shape.STRelate(b.shape, 'Some DE9IM pattern here') = 1;