使用postgis在postgreSQL上请求错误(返回多行)

时间:2016-01-27 09:43:26

标签: postgresql postgis

我使用postGIS在postgreSQL上有一个包含我所有国家37000个城市的专栏,并且我试图将他们的POINT(几何列)与postgis函数ST_point(long,lat)放在一起。它们都有不同的长数据和纬度数据。

这是我的要求:

update city
set geom_city = (select ST_SetSRID(ST_Point(city.city_long, city.city_lat),4326) from city);

问题是我发现了这个错误信息:用作表达式postgreSQL的子查询返回的多行

我发现了stackoverflow,我需要使用"限制1"在我的请求结束时:

update city
set geom_city = (select ST_SetSRID(ST_Point(city.city_long, city.city_lat),4326) from city LIMIT 1);

这使我的请求工作但是在geom_city列中写入了所有城市的相同结果。

有谁知道?

1 个答案:

答案 0 :(得分:2)

不需要嵌套的SELECT子查询,请尝试:

update city
set geom_city = ST_SetSRID(ST_Point(city_long, city_lat),4326) ;