我有一列包含我国家/地区所有 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) ;