Удаление значений из пространственного столбца ST_Geometry
Выражение SQL DELETE удаляет строки данных из указанной таблицы или представления.
Шаги:
-
Ниже приведены примеры запросов, которые удаляют данные из каждой поддерживаемой базы данных:
- В этом примере удаляются значения из базы геоданных на Oracle с помощью пространственного типа, основанного на пространственном фильтре:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
- В этом примере удаляются значения из базы геоданных на PostgreSQL с помощью пространственного типа, основанного на пространственном фильтре:
DELETE FROM sensitive_areas WHERE names EXISTS (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 't');
- В IBM DB2 используйте следующее выражение:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE db2gse.st_overlaps (sa.zone, db2gse.st_buffer (hs.location,.01)) = 1);
- Informix не поддерживает изменение таблицы или представления, использованной в подзапросе. Поэтому разбейте запрос на две части: выбор во временную таблицу и удаление с ее помощью.
SELECT sa.name FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) INTO TEMP tempTable; DELETE FROM sensitive_areas WHERE name IN (select name from tempTable);
- В этом примере удаляются значения из базы геоданных на Oracle с помощью пространственного типа, основанного на пространственном фильтре:
9/11/2013