PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да използвате ST_Intersects в WHERE клауза

Най-вероятно се опитвате да използвате ST_Intersects с псевдоним на израз, а не на колона или геометрия. И вашата логика е обърната:първо трябва да анализирате и изхвърлите геометриите от вашата колекция от функции и след това да приложите филтъра, а не обратното:

WITH datasource (feature) AS (
 SELECT json_array_elements('{json_string}'::json->'features')  
)
SELECT 
  ST_AsGeoJSON(ST_Union(ST_GeomFromGeoJSON(feature->>'geometry'))),
  ST_AsText(ST_Union(ST_GeomFromGeoJSON(feature->>'geometry')))
FROM datasource
WHERE NOT ST_Intersects(ST_GeomFromGeoJSON(feature->>'geometry'),'{a geometry}');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL чрез SSH тунел

  2. Синхронизиране на elasticsearch при връзка с база данни - nodeJS

  3. Проверете дали съществува последователност в Postgres (plpgsql)

  4. PostgreSQL в Docker - pg_hba.conf за разрешаване на достъп от хост до контейнер

  5. PostgreSQL управление и автоматизация с ClusterControl