• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

比较两个无关的表sql

sql 来源:Kirtep 4次浏览

我们正在使用Oracle数据库处理地理数据。比较两个无关的表sql

有一个称为ST_Insertects(x,y)的函数,如果记录x与y相交,则返回true。

我们正在试图做的是,比较表B中的所有记录表A的每个记录,并检查两个条件

condition 1 : A.TIMEZONE = 1 (Timezone field is not unique) 
condition 2 : B.TIMEZONE = 1 
condition 3 : ST_Intersects(A.SHAPE, B.SHAPE) (Shape field is where the geographical information is stored) 

我们正在寻找的结果是只能从表中的记录一个满足所有三个条件以上

我们试图在这个单一的SELECT语句,但它似乎并没有太大的意义逻辑


===========解决方案如下:

如果要在Oracle SQL语句中使用函数的返回值,则需要更改函数以返回01(要么'T'/'F' – Oracle数据库支持的某些数据类型,它不支持布尔数据类型)。

,那么你可能要像

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 
      ) 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)