当使用集合派生表段的集合表达式格式来访问集合元素时,可以通过虚拟表之间选择集合元素。只能在 SELECT 语句的 FROM 子句中使用这种格式。FROM 子句可在查询或子查询中。
用这种格式可以使用连接、聚集、WHERE 子句、表达式、ORDER BY 子句以及在使用集合变量格式时不可用的其它操作。这种格式减少了对多个游标和临时表的需求。
可能的集合表达式示例包括列的引用、标量子查询、点表达式、函数、运算符(通过重载)、集合子查询、文字集合、集合构造函数和强制转型函数等。
SELECT * FROM TABLE(MULTISET(SELECT SKIP 50 FIRST 20 * FROM employees ORDER BY employee_id)) vt(x,y), tab2 WHERE tab2.id = vt.x;
SELECT emp_id, emp_name, emp_salary FROM TABLE(MULTISET(SELECT SKIP 40 LIMIT 20 id, name, salary FROM e1, e2 WHERE e1.id = e2.id ORDER BY salary )) AS etab(emp_id, emp_name, emp_salary);