您可在 WHERE 子句、FROM 子句之内的 SELECT 语句的子查询中,以及在集合子查询中使用
UNION 和 UNION ALL 运算符。然而,在此 GBase 8s 版本中,在下列上下文中不支持包含
UNION 或 UNION ALL 的子查询:
• 在视图的定义中
• 在触发器的事件或 Action 子句中
• 使用 FOR UPDATE 子句或使用 Update 游标
有关集合子查询的信息,请参阅 集合子查询。关于 FOR UPDATE 子句的更多信息,请参阅 FOR
UPDATE 子句。
特别地是,在本版本数据库中支持在分布式查询中包含 UNION 的子查询。
在组合的子查询中,数据库服务器只能在列的限定表引用的作用域中解析出列名。例如,下列查询
返回错误:
SELECT * FROM t1 WHERE EXISTS
(SELECT a FROM t2
UNION
SELECT b FROM t3 WHERE t3.c IN
(SELECT t4.x FROM t4 WHERE t4.4 = t2.z));
在此,不可解析最内部的子查询 t2.z,因为 z 发生在表引用 t2 的引用范围之外。在最内部的子查
询中,仅可解析属于 t4、t3 或 t1 的列引用。表引用的作用域通过子查询向下扩展,但不越过
UNION 运算符扩展到兄弟 SELECT 语句。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。