GBase 8s 支持 SELECT 查询和子查询的 FROM 子句中的表表达式的 ANSI/ISO 标准语法,作为 GBase 8s 扩展集合派生表语法的替代。在版本 10.00 和更早版本的需要关键字 TABLE 和 MULTISET 。支持用于 SQL 的 ANSI/ISO 标准的这些扩展,但不再需要在 SELECT 语句的 FROM 子句中的集合派生表规范。
SELECT * FROM TABLE(MULTISET(SELECT col1 FROM tab1 WHERE col1 = 100)) AS vtab(c1), (SELECT col1 FROM tab1 WHERE col1 = 10) AS vtab1(vc1) ORDER BY c1; SELECT * FROM (SELECT col1 FROM tab1 WHERE col1 = 100) AS vtab(c1), (SELECT col1 FROM tab1 WHERE col1 = 10) AS vtab1(vc1) ORDER BY c1;
SELECT * FROM (SELECT col1 FROM tab1 WHERE col1 = 100) AS vtab(c1), TABLE(MULTISET(SELECT col1 FROM tab1 WHERE col1 = 10)) AS vtab1(vc1) ORDER BY c1;
子查询必须以两种格式的圆括号分隔,但紧跟在 TABLE 关键字后面并包含 MULTISET 集合子查询规范的外部圆括号(( ) )是 ANSI/ISO 语法的扩展。此 ANSI/ISO 语法仅在 SELECT 语句的 FROM 子句中有效。在任何其它上下文中,您不能从集合子查询规范中省略这些关键字和括号。