我使用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列中写入了所有城市的相同结果。
有谁知道?
答案 0 :(得分:2)
不需要嵌套的SELECT子查询,请尝试:
update city
set geom_city = ST_SetSRID(ST_Point(city_long, city_lat),4326) ;