Ошибка в выражении Postgis SQL для данных OSM - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь выбрать конкретное значение в данных многоугольника OSM, используя DB Manager в QGIS, который подключен к базе данных PostGIS. Когда я набираю

SELECT * 
FROM planet_osm_polygon 
WHERE landuse is not null 

, этот оператор SQL работает. Это дает мне все строки, которые имеют значения землепользования.

Однако, если я заменю landuse на natural (это другое имя столбца), это выдаст мне сообщение об ошибке. Я использовал другое имя столбца, например, leisure. Я получаю результат запроса.

Я не уверен, почему я не могу использовать natural имя заголовка столбца. Будем благодарны за любые подсказки, чтобы решить эту ошибку.

1 Ответ

0 голосов
/ 15 апреля 2020

natural является зарезервированным ключевым словом , поэтому необходимо заключить его в двойные кавычки:

SELECT * FROM osm_polygons WHERE "natural" is not null;

PS: то же самое верно, если в столбце есть точка с запятой имя:

SELECT * FROM osm_polygons WHERE "addr:housenumber" is not null;
...