Можете да използвате
SELECT POINT_LOCATION
FROM LOCATIONS_TABLE
WHERE ST_Contains(ST_GEOMFROMTEXT('POLYGON((P1.X P1.Y, P2.X P2.Y, ...))'), LOCATIONS_TABLE.POINT_LOCATION);
Забележка:Многоъгълникът трябва да е затворен (това означава, че последната координата ==първа координата). Вторият параметър POINT_LOCATION трябва да бъде геометричната колона във вашата таблица с точки.
АКТУАЛИЗАЦИЯ:Опитах се да повторя вашите стъпки в моята база данни на pg. Създадох 2 таблици, LOCATIONS_TABLE (id, geom) и POLYGON (id, geom). След това попълних LOCATIONS_TABLE с 2 точки
SRID=4326;POINT(-103.4955 20.723544)
SRID=4326;POINT(-103.496956 20.722446)
След това вмъкнах многоъгълника в таблицата POLYGON
SRID=4326;POLYGON((-103.305496375 20.8527356811533,-103.0810348125 20.6129741620855,-101.6261045 20.5375321062668,-99.8356786875 20.3958770270624,-99.803065375 22.0572706994358,-99.649948125 28.9186361984516,-121.1212769375 8.69559423007209,-103.305496375 (...)
Визуализирах ситуацията в qgis, вижте снимката по-долу:
Както можете да видите, 2-те точки са вътре в многоъгълника. Така че ръчно създадох точка извън многоъгълника. След това можете да използвате следната sql заявка, за да видите дали точките са вътре в многоъгълника:
SELECT ST_Contains(polygon.geom, point.geom)
FROM public."LOCATIONS_TABLE" point, public."POLYGON" polygon
Връща t за 2 точки вътре и false за третата точка.