FROM 子句的集合子查询
集合子查询在 SELECT 的 FROM 子句中有效,外部查询可使用子查询返回的值作为数据
源。
集合子查询这一节中的查询示例通过使用 TABLE 关键字后面(括号内)跟 MULTISET 关
键字然后跟子查询来指定集合子查询。该语法是对 SQL 语言的 ANSI/ISO 标准的 GBase
8s 扩展。
在(且仅在)SELECT 语句的 FROM 子句中,可以通过指定子查询、省略 TABLE 和
MULTISET 关键字和嵌套的括号来代替 SQL 的 ANSI/ISO 标准的语法,以指定集合子查
询。
下列查询使用 GBase 8s 扩展语法连接外部查询的 FROM 子句中的两个集合子查询:
图: 查询
SELECT * FROM TABLE(MULTISET(SELECT SUM(C1) FROM T1 GROUP BY C1)),
TABLE(MULTISET(SELECT SUM(C1) FROM T2 GROUP BY C2));
通过使用符合 ANSI/ISO 的语法来连接外部查询的 FROM 子句中的两个派生表,下列查
询在逻辑上等价于上述返回相同结果的查询:
图: 查询
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 指南:语法》。
GBase 8s V8.8 SQL 指南:教程-6.4.1(3)
最新推荐文章于 2022-07-21 11:00:51 发布