postgresql - OSM 数据的 Postgis SQL 语句中的错误
问题描述
我正在尝试使用连接到 PostGIS 数据库的 QGIS 中的 DB 管理器在 OSM 多边形数据中选择一个特定值。当我输入
SELECT *
FROM planet_osm_polygon
WHERE landuse is not null
此 SQL 语句有效。它给了我所有具有土地利用价值的行。
但是,如果我替换landuse
为natural
(这是另一个列名),它会给我一条错误消息。例如,我使用了另一个列名leisure
。我得到查询结果。
我不确定为什么我不能使用natural
列标题名称。任何解决此错误的线索将不胜感激。
解决方案
natural
是一个保留关键字,所以你需要用双引号括起来:
SELECT * FROM osm_polygons WHERE "natural" is not null;
PS:如果列名中有分号也是如此:
SELECT * FROM osm_polygons WHERE "addr:housenumber" is not null;
推荐阅读
- libreoffice-calc - 在 OpenOffice Calc 中按字母顺序对单元格进行排序,使其在列中相等
- react-native - EXPO AuthSession 在 Android 设备上返回关闭
- r - R 中的霍特林斯 T2
- java - 计时器,显示在使用 java 中的按钮之前必须等待多少秒
- java - RecyclerView 适配器中的 onBackPressed()
- python - 通过破折号中的数据范围过滤数据
- java - Java 代码将工作簿导出到当前用户 PC 而不是实际的 Web 应用程序主机
- matlab - 如何计算matlab文本文件中每个字母(AZ,az以及'.',','和'')的出现次数?
- python - Python的列表索引超出范围
- python - 在 Python 中比较两个数据框并有条件地捕获随机数据