更新日期:2024年09月11日
MULTISET 数据类型是存储无序集的集合类型,它能包含重复的元素值。
MULTISET 中的元素没有顺序位置。也就是说,在 MULTISET 中不存在第一元素、第
二元素或第三元素的概念。
MULTISET 中的所有元素都具有相同的元素类型。要指定元素类型,使用以下语法:
MULTISET(element_type NOT NULL)
集合的 element_type 可以是下列任何类型:
任何内置类型(SERIAL、SERIAL8、BIGSERIAL、BYTE 和 TEXT 除外)
未命名或命名 ROW 类型
另一个集合类型或不透明类型
除非另外指示,否则可以在使用任何其他数据类型的地方使用 MULTISET。例如:
在用来搜索匹配的 MULTISET 值的 SELECT 语句 WHERE 子句中的 IN 谓词后面
作为用来确定 LIST 列中的元素数目的 CARDINALITY 或 mi_collection_card( )
函数的自变量
不能将 MULTISET 值用作聚集函数(例如,AVG、MAX、MIN 或 SUM)的自变量。
必须对 MULTISET 元素指定 NOT NULL 约束。其他约束对 MULTISET 列无效。有关
MULTISET 集合类型的更多信息,请参阅 GBase 8s SQL 指南:语法。
如果两个 multiset 数据值具有相同的元素,那么它们相等,即使各元素在集中的位
置不同。下列两个示例都是 multiset 值但不相等:
MULTISET {"blue", "green", "yellow"}
MULTISET {"blue", "green", "yellow", "blue"}
下列 multiset 值是相等的:
GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 105 -
MULTISET {"blue", "green", "blue", "yellow"}
MULTISET {"blue", "green", "yellow", "blue"}
可以将相同表的不超过 97 列声明为 MULTISET 数据类型。(同一限制适用于 SET
和 LIST 集合类型。)
命名 ROW
请参阅 ROW 数据类型,已命名。