小编Jsc*_*ore的帖子

如何遍历字符串数组并在 Postgresql 中创建多个表

我想拿一张大桌子,分成几个小桌子。我有以下代码片段,它通过手动替换"NAME"为 中的唯一名称来工作ui00000bvbb.lad15nm

   CREATE TABLE "NAME" AS
   SELECT parcels_all_shapefile.* AS parcels
   FROM ui00000bvbb INNER JOIN parcels_all_shapefile ON ST_Intersects(ui00000bvbb.wkb_geometry, parcels_all_shapefile.wkb_geometry)
   WHERE ui00000bvbb.lad15nm = "NAME")
Run Code Online (Sandbox Code Playgroud)

我的问题是如何遍历名称列表并填充上述代码?我尝试了以下方法,但不起作用:

DO
$do$
DECLARE
   m   varchar[];
   arr varchar[] := array[['Barnet'],['Westminster']];
BEGIN
   FOREACH m SLICE 1 IN ARRAY arr
   LOOP
       CREATE TABLE m AS
       SELECT parcels_all_shapefile.* AS parcels
       FROM ui00000bvbb INNER JOIN parcels_all_shapefile ON ST_Intersects(ui00000bvbb.wkb_geometry, parcels_all_shapefile.wkb_geometry)
       WHERE ui00000bvbb.lad15nm = m)
   END LOOP;
END
$do$
Run Code Online (Sandbox Code Playgroud)

postgresql loops plpgsql declare

3
推荐指数
1
解决办法
5494
查看次数

标签 统计

declare ×1

loops ×1

plpgsql ×1

postgresql ×1