我们正在使用Oracle数据库处理地理数据。
有一个名为ST_Insertects(x,y)的函数,如果记录x与y相交,则返回true。
我们要做的是,比较每条记录……
演示交叉连接的伪代码:
select A.* from tbl1 A, tbl2 B where A.TIMEZONE = 1 and B.TIMEZONE = 1 and ST_Intersects(A.SHAPE, B.SHAPE)
如果你得到倍数,你可以放一个不同的,只选择A.XXX列
使用交叉连接行匹配如下
a.row1 - b.row1 a.row1 - b.row2 a.row1 - b.row3 a.row2 - b.row1 a.row2 - b.row2 a.row2 - b.row3
因此,如果第1行在多行上的计算结果为true,则只需在a.Column1上添加distinct等。
如果要在Oracle SQL语句中使用函数的返回值,则需要更改要返回的函数 0 要么 1 (要么 'T'/'F' - Oracle数据库支持的某些数据类型,它不支持布尔数据类型)。
0
1
'T'/'F'
然后你可能想要类似的东西
select <columns from A> from A where A.timezone = 1 and exists ( select * from B where B.timezone = 1 and ST_intersects(A.shape, B.shape) = 1 )