暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBae 8s SQL 指南:语法_4. 数据类型和表达式_4.5 条件 (23)

GBASE数据库 2022-04-26
102

子查询不可引用 BYTE 或 TEXT 列,也不可包含 ORDER BY 子句。然而,在 FROM 子句中指
定表表达式的子查询可包括 ORDER BY 子句。
如果子查询的 FROM 子句指定外部语句在这些子句之一中引用的同一表或视图,则子查询及其外部
DML 语句在同一表对象上操作:
⚫ 在 DELETE 或 SELECT 语句的 FROM 子句中
⚫ 在 INSERT 语句的 INTO 子句中
⚫ 在 UPDATE 语句的“表选项”或“集合派生的表”规范中。
仅在 DELETE 或 UPDATE 语句的 WHERE 子句中,那些返回多行和与括起来的 DML 语句操
作的同一表或视图的子查询才是有效的。即使在此上下文中,这样的子查询也返回错误 -360,除非
满足所有下列条件:
⚫ 该子查询不引用它的 FROM 列表中的任何列名称,它在 projection 列表中未指定的表中
⚫ 使用带有 Subquery 语法的 Condition 指定该子查询。
⚫ 该子查询内的任何 SPL 例程不可引用正在修改的表。
下列程序片断包括在 UPDATE 和 DELETE 语句中带有子查询的条件的示例:
CREATE TABLE t1 ( a INT, a1 INT)
CREATE TABLE t2 ( b INT, b1 INT) ;
. . .
UPDATE t1 SET a = a + 10 WHERE EXISTS
(SELECT a FROM t1 WHERE a > 1);
UPDATE t1 SET a = a + 10 WHERE a IN
(SELECT a FROM t1, t2 WHERE a > b
AND a IN
(SELECT a FROM t1 WHERE a > 50 ) );
DELETE FROM t1 WHERE EXISTS
(SELECT a FROM t1);

要获取更多关于在 DELETE 语句中的子查询的信息,请参阅 DELETE 的 WHERE 子句中的子查
询。 
要获取更多关于在 UPDATE 语句中的子查询的信息,请参阅 UPDATE 的 WHERE 子句中的子
查询。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论