在插入 PostgreSQL 之前剪切列的内容
cut the content of a column before insertion PostgreSQL
我有一张 table 照片,其中有两列(name_photo 和 code_support):
我正在寻找的结果:
我想剪切由管道分隔的 name_photo 字段的数据,所以我这样做了:
CREATE OR REPLACE FUNCTION string_to_rows(text) RETURNS SETOF TEXT AS $$
DECLARE
elems text[];
BEGIN
elems := string_to_array(, '|');
FOR i IN array_lower(elems, 1) .. array_upper(elems, 1) LOOP
RETURN NEXT elems[i];
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql;
现在如何使用此功能在插入照片之前裁剪我的字段 table?提前谢谢你
您不需要为此编写函数。内置的 string_to_array
和 unnest()
函数将执行您想要的操作:
select t.name, p.code_support
from photos p
cross join unnest(string_to_array(p.nom_photo, '|')) as t(name)
unnest()
将数组的元素转换为行。
我有一张 table 照片,其中有两列(name_photo 和 code_support):
我正在寻找的结果:
我想剪切由管道分隔的 name_photo 字段的数据,所以我这样做了:
CREATE OR REPLACE FUNCTION string_to_rows(text) RETURNS SETOF TEXT AS $$
DECLARE
elems text[];
BEGIN
elems := string_to_array(, '|');
FOR i IN array_lower(elems, 1) .. array_upper(elems, 1) LOOP
RETURN NEXT elems[i];
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql;
现在如何使用此功能在插入照片之前裁剪我的字段 table?提前谢谢你
您不需要为此编写函数。内置的 string_to_array
和 unnest()
函数将执行您想要的操作:
select t.name, p.code_support
from photos p
cross join unnest(string_to_array(p.nom_photo, '|')) as t(name)
unnest()
将数组的元素转换为行。