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



我有一列包含我国家/地区所有 37 000 个城市的 postgreSQL 使用 postGIS 并且我正在尝试将他们的 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);

问题是我有这个错误 msg 说:用作表达式 postgreSQL 的子查询返回的多行

我在堆栈溢出上发现我需要在请求结束时 pu"限制 1",例如:

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

这使我的请求有效,但确实在geom_city列中写入了所有城市的相同结果。

有人知道吗?

不需要嵌套的 SELECT 子查询,请尝试以下操作:

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

最新更新