GBase8s数据库子查询中的 UNION

您可在 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 语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值