PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara menggunakan ST_Intersects dalam klausa WHERE

Kemungkinan besar Anda mencoba menggunakan ST_Intersects dengan alias ekspresi, bukan kolom atau geometri. Dan logika Anda terbalik:Anda harus terlebih dahulu mengurai dan membuang geometri dari koleksi fitur Anda dan kemudian menerapkan filter, bukan sebaliknya:

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. Menggunakan Docker untuk meluncurkan aplikasi web, tidak dapat terhubung ke Postgresql DB?

  2. Fungsi Postgres

  3. Memperbaiki tabel TOAST yang rusak

  4. daftar tipe Postgres ENUM

  5. Bagaimana saya bisa mengubah penyandian basis data untuk basis data PostgreSQL menggunakan sql atau phpPgAdmin?