您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

CARDINALITY 函数

CARDINALITY 函数返回数组 中集合元素的最高索引。如果第 N 个元素的索引在索引中最大,则返回 N (>= 0)。

CARDINALITY(:)

例如,获取数组 的大小。

CREATE PROCEDURE CARDINALITY_2(OUT n INTEGER) AS 

BEGIN

DECLARE array_id Integer ARRAY;

n = CARDINALITY(:array_id);

END;

结果为 n=0,因为数组中没有 元素。在下一示例中,基数为 20,因为设置了第 20 个元素。这会将元素 1-19 隐式设置为 NULL

CREATE PROCEDURE CARDINALITY_3(OUT n INTEGER) AS 

BEGIN

DECLARE array_id Integer ARRAY;

array_id[20] = NULL;

n = CARDINALITY(:array_id);

END;

CARDINALITY 函数也可以在支持表达式的任何地方直接使用,例如在条件中:

CREATE PROCEDURE CARDINALITY_1(OUT n INTEGER) AS 

BEGIN

DECLARE array_id Integer ARRAY := ARRAY(1, 2, 3);

If CARDINALITY(:array_id) > 0 THEN

n = 1 ;

ELSE

n = 0;

END IF;

END;