我在plpgsql中有以下查询:
FOR _t IN EXECUTE 'select distinct_network_point.id AS network_point_id
from distinct_network_point, all_points_ordered
where road_id='||road_id||' AND distinct_network_point.point = all_points_ordered.point AND all_points_ordered.point != st_setsrid(st_makepoint('||new_point||'),4326)
order by st_distance(all_points_ordered.point,st_setsrid(st_makepoint('||new_point||'),4326))
limit 1'
对某些人来说,它给了我以下错误:
如果我使用此<>运营商它会给我这个:
任何人都可以解释它的真正含义吗?该查询在sql中正常工作。
答案 0 :(得分:1)
由于您处理几何类型,!=
或<>
运算符均无效。
Instead, please refer to the following list of geometric operators.
在这种情况下,由于您要检查两个点是否相同,我相信您可以使用运算符<->
之间的距离,并检查您的距离是否相等两点大于某种非常小的epsilon值。
类似的东西:
AND all_points_ordered.point <-> st_setsrid(st_makepoint('||new_point||'),4326) > 0.0001