如果一个数组中有一些值存在于另一个数组中,我想根据执行一些操作。下面是我试图处理数组的代码的一部分。我有两个数组cl\u nm[]和cl\u nm\u fin[]。如果cl\u nm[]中的值在cl\u nm\u fin[]中不存在,我想执行更新。请帮助我如何修改我的代码。尝试执行此操作时,我发现列已经存在错误,因为for循环在进入else条件之前没有遍历cl\u nm\u fin[]中的所有元素。
9rbhqvlz1#
我可以用以下方法解决这个问题:
DO BEGIN DECLARE arr1 TINYINT ARRAY = ARRAY(1,2,3,4); DECLARE arr2 INTEGER ARRAY = ARRAY(1,2);--convert array in table rst1 with column name col1 rst1 = UNNEST(:arr1) as (COL1);--convert array in table rst2 with column name col1 rst2 = UNNEST(:arr2) as (COL1);--query with minus select col1 from :rst1 minus select col1 from :rst2;END;
DO
BEGIN
DECLARE arr1 TINYINT ARRAY = ARRAY(1,2,3,4);
DECLARE arr2 INTEGER ARRAY = ARRAY(1,2);
--convert array in table rst1 with column name col1
rst1 = UNNEST(:arr1) as (COL1);
--convert array in table rst2 with column name col1
rst2 = UNNEST(:arr2) as (COL1);
--query with minus
select col1 from :rst1
minus
select col1 from :rst2;
END;
1条答案
按热度按时间9rbhqvlz1#
我可以用以下方法解决这个问题: