在PostgreSQL中,要对未知数量的布尔值执行AND操作,可以使用变量参数和PL/pgSQL函数。以下是一个示例:
CREATE OR REPLACE FUNCTION bool_and_agg(bool_array boolean[])
RETURNS boolean
AS $$
DECLARE
result boolean := true;
i integer := 1;
BEGIN
IF array_length(bool_array, 1) = 0 THEN
RETURN NULL;
END IF;
WHILE i <= array_length(bool_array, 1) AND result LOOP
result := result AND bool_array[i];
i := i + 1;
END LOOP;
RETURN result;
END;
$$ LANGUAGE plpgsql;
SELECT bool_and_agg(ARRAY[true, false, true, true]);
这将返回false
,因为数组中有一个false
值。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云