PostgreSQL:使用子句词作为列名

时间:2016-03-22 21:58:26

标签: postgresql openstreetmap postgis

序: 我正在使用OSM2PGSQL将我的OpenStreetMap(OSM)数据导入PostgreSQL。这将导入与数据中每个元素关联的所有标记,其中一个是“自然”标记。此标记定义此区域的地形类型。 (IE,natural = water表示此坐标定义了水的面积)。

我正在尝试访问表示为“自然”的列,例如在查询

SELECT * FROM planet_osm_polygon WHERE natural='water' LIMIT 100;

但是,因为NATURAL也是PostgresSQL子句,查询会返回错误。

有没有办法解决这个问题?我试过用引号包裹自然这个词,但没有用。

1 个答案:

答案 0 :(得分:1)

双引号应该有效。这是我用来验证的快速示例

# create table test123( "natural" text );
CREATE TABLE
# insert into test123 values('test');
INSERT 0 1
# insert into test123 values('water');
INSERT 0 1
# select * from test123 where "natural"='water';
natural 
---------
water
(1 row)