2

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

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

我想做以下事情:

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

1 回答 1

2

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

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;
于 2013-10-25T03:24:57.523 回答