sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL:vis ture inden for en afgrænsningsramme

Da dine koordinater er gemt i x,y kolonner, skal du bruge ST_MakePoint at skabe en ordentlig geometri. Derefter kan du oprette en BBOX ved hjælp af funktionen ST_MakeEnvelope og kontroller, om start- og slutkoordinater er inde i BBOX'en ved hjælp af ST_Contains , f.eks.

WITH bbox(geom) AS (
  VALUES (ST_MakeEnvelope(-8.68494,41.24895,-8.47569,41.11591,4326))
)
SELECT * FROM trips,bbox
WHERE 
  ST_Contains(bbox.geom,ST_SetSRID(ST_MakePoint(lon_start,lat_start),4326)) AND
  ST_Contains(bbox.geom,ST_SetSRID(ST_MakePoint(lon_end,lat_end),4326));

Bemærk: CTE er egentlig ikke nødvendigt og er i forespørgslen kun til illustrationsformål. Du kan gentage ST_MakeEnvelope funktion på begge betingelser i WHERE klausul i stedet for bbox.geom . Denne forespørgsel antager også SRS WGS84 (4326).



  1. Skrivebeskyttet Oracle Home

  2. Hvordan kan jeg forespørge på en værdi i SQL Server XML-kolonnen

  3. JUnit/HSQLDB:Sådan kommer du uden om fejl med Oracle-syntaks, når du tester med HSQLDB (ingen privilegium og/eller intet DUAL-objekt)

  4. Oracle Streams trin for trin replikeringseksempel