sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man använder ST_Intersects i WHERE-satsen

Du försöker med största sannolikhet använda ST_Intersects med ett alias för ett uttryck, inte en kolumn eller en geometri. Och din logik är inverterad:du måste först analysera och dumpa geometrierna från din funktionssamling och sedan använda filtret, inte tvärtom:

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. PostgreSQL:existerar vs left join

  2. mysqli_connect():(HY000/2003):Kan inte ansluta till MySQL-servern på 'domännamn' (111)

  3. Hur hittar jag de frågor som blockerar en annan fråga?

  4. Det går inte att ta bort en mySQL-tabell. (Fel 1050)