PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách sử dụng ST_Intersects trong mệnh đề WHERE

Rất có thể bạn đang cố sử dụng ST_Intersects với bí danh của một biểu thức, không phải là một cột hoặc một hình học. Và logic của bạn đang bị đảo ngược:trước tiên bạn cần phân tích cú pháp và kết xuất các hình từ bộ sưu tập tính năng của mình rồi áp dụng bộ lọc, chứ không phải ngược lại:

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. Nhận thời gian thực thi của truy vấn PostgreSQL

  2. Gọi một hàm có kiểu kết hợp làm đối số từ truy vấn gốc trong jpa

  3. Django-DB-Migrations:không thể ALTER TABLE vì nó có các sự kiện kích hoạt đang chờ xử lý

  4. Số tiền kiểm tra kích hoạt Postgres trước khi xóa

  5. Phát triển PostgreSQL cho Windows, Phần 2