处理 SELECT 语句中的集合 / 集合子查询 |
集合子查询在 SELECT 的 FROM 子句中有效,外部查询可使用子查询返回的值作为数据源。
集合子查询这一节中的查询示例通过使用 TABLE 关键字后面(括号内)跟 MULTISET 关键字然后跟子查询来指定集合子查询。该语法是对 SQL 语言的 ANSI/ISO 标准的 GBase 8s 扩展。
在(且仅在)SELECT 语句的 FROM 子句中,可以通过指定子查询、省略 TABLE 和 MULTISET 关键字和嵌套的括号来代替 SQL 的 ANSI/ISO 标准的语法,以指定集合子查询。
图: 查询
SELECT * FROM TABLE(MULTISET(SELECT SUM(C1) FROM T1 GROUP BY C1)), TABLE(MULTISET(SELECT SUM(C1) FROM T2 GROUP BY C2));
图: 查询
SELECT * FROM (SELECT SUM(C1) FROM T1 GROUP BY C1), (SELECT SUM(C1) FROM T2 GROUP BY C2);
该查询优于 TABLE(MULTISET(SELECT ...)) GBase 8s 扩展版本之处在于,任何支持 FROM 子句中符合 ANSI/ISO 语法的数据库服务器也可以执行该查询。有关集合子查询的语法和限制的更多信息,请参阅 GBase 8s SQL 指南:语法。