集合派生的表这一节中的查询示例通过使用 TABLE 关键字后面
(括号内)
跟 SELECT 语
句来指定集合派生的表。该语法是对 SQL 语言的 ANSI/ISO 标准的 GBase 8s 扩展。
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 148 -
但是,在
(且仅在)SELECT 的 FROM 子句中,可以通过指定子查询来代替使用 SQL 符
合 ANSI/ISO 标准的语法,在不使用 TABLE 关键字或嵌套括号的情况下,来定义集合派
生的表。
下列查询在逻辑上等价于 图 3,并为集合派生的表 c_table 指定拍摄了列
表 s_month 和 s_amount。
图: 查询
SELECT * FROM (SELECT sales FROM sales_rep
WHERE sales_rep.rep_num = 102) c_table(s_month, s_amount);
图: 查询结果
s_month s_amount
1998-03 $53.22
1998-04 $18.22
如 GBase 8s 扩展语法中一样,声明派生表或其列的名称是可选的,而不是必需的。下列查
询对外部查询的 FROM 子句使用符合ANSI/ISO 标准的语法,并产生与图 5相同的结果:
图: 查询
SELECT * FROM (SELECT sales FROM sales_rep
WHERE sales_rep.rep_num = 102);
图: 查询结果
month amount
1998-03 $53.22
1998-04 $18.22