PostgreSQL 中的数组位置比较



我有 2 个数组,每个数组有 2 个元素。

例如:数组是array['M','UM']'{0,1}'

我想执行以下操作:

update table set value=0 where code='M';
update table set value=1 where code='UM';

我还没有测试过。这个想法是这样的:

CREATE OR REPLACE FUNCTION array_translate(varchar[], int[])
NULL
AS
$$
DECLARE
   arrStr ALIAS FOR $1;
   arrInt ALIAS FOR $2;
BEGIN
   FOR I IN array_lower(arrStr, 1)..array_upper(arrStr, 1) LOOP
    update table set value=arrInt[I] where code=arrStr[I];
   END LOOP;
RETURN NULL;
END;
$$
LANGUAGE plpgsql 
   STABLE 
RETURNS NULL ON NULL INPUT;

最新更新