处理集合 / 将元素插入至集合变量内 |
有时,您可能想要将元素添加在 LIST 的末尾。在此情况下,您可使用 cardinality() 函数来找到 LIST 中的元素的编号,然后输入一个大于 cardinality() 返回的值的位置。
GBase 8s 允许您随同存储在列中的集合来使用 cardinality() 函数,但不允许随同存储在集合变量中的集合来使用。在 SPL 例程中,您可以 SELECT 语句检查列中的集合的基数,并将该值返回给变量。
图: end_of_list SPL 过程。
CREATE PROCEDURE end_of_list() DEFINE n SMALLINT; DEFINE list_var LIST(INTEGER NOT NULL); SELECT CARDINALITY(evens) FROM numbers INTO n WHERE id = 100; LET n = n + 1; SELECT evens INTO list_var FROM numbers WHERE id = 100; INSERT AT n INTO TABLE(list_var) VALUES(12); END PROCEDURE;
在 end_of_list 中,变量 n 保存 cardinality() 返回的值,即,LIST 中的项数。LET 语句使 n 递增,以便于 INSERT 语句可在 LIST 的最后的位置插入值。SELECT 语句将来自该表的一行的集合选择至集合变量 list_var 内。INSERT 语句将元素 12 插入在该列表的结尾。