集合派生表的查询计划

集合派生表是数据库服务器用以处理有关集合的查询的特殊方法。要使用集合派生表,查询必须在 SQL 语句的 FROM 子句中包含 TABLE 关键字。

有关如何在 SQL 语句中使用的集合派生表的更多信息,请参阅 GBase 8s SQL 指南:语法

虽然数据库并没有真的为集合创建一个表,但是数据库还是象它是一个表一样处理数据。在某些情况下,集合派生表允许开发者使用较少的游标和主变量来访问集合。

这些 SQL 语句创建一个称为 children 的集合列:
CREATE ROW TYPE person(name CHAR(255), id INT);
CREATE TABLE parents(name CHAR(255),
id INT,
children LIST(person NOT NULL));
以下查询为 children 列创建了一个集合派生表并将该集合的元素视为表中的行:
SELECT name, id 
FROM TABLE(MUTLISET(SELECT children 
FROM parents
WHERE parents.id
= 1001)) c_table(name, id);
此外,您也可以在 FROM 子句中指定集合派生表,如下例所示:
SELECT name, id 
FROM (SELECT children 
FROM parents
WHERE parents.id
= 1001) c_table(name, id);