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

GBASE分享: MERGE 的 Delete 子句

郑小雯 2023-07-11
159

 MERGE 的 Delete 子句

不在 WHERE 子句中编写子查询,您可使用 MERGE 语句将来自源表和目标表的行连接 在一起,然后从目标删除与连接条件相匹配的那些行。(Delete MERGE 中的源表还可为 一个集合派生的表,它的行是查询的结果,该查询连接其他的表和视图,但是在下列的示 例中,源是单个表。)

如在前面的示例中那样,假设您发现 stock 表的某些行包含不正确的制造商代码。您想要删 除它们以便重新输入它们,而不是更新它们。您可使用 MERGE 语句,指定 stock 作为目 标表,manufact 作为源表,ON 子句中的连接条件,并对于带有不正确的制造商代码 的 stock 行使用 Delete 子句,如下例所示:

MERGE INTO stock USING manufact ON stock.manu_code != manufact.manu_code WHEN MATCHED THEN DELETE;

在此示例中,会从 stock 表中删除那些满足 ON 子句中的连接条件的所有行。在此,对于 其中的 manu_code 列值不等于 manufact 中的任何manu_code 值的 stock 的那些行,连接条 件中的不等谓词(stock.manu_code != manufact.manu_code)求值为真。

在 USING 子句中必须罗列正连接到目标表的源表。 MERGE 语句还可更新目标表的行,或将数据从源表插入到目标表,根据该行是否满足 ON

子句为连接目标表与源表而指定的条件。单个 MERGE 语句还可同时组合 DELETE 与 INSERT 操作,或者可同时组合 UPDATE 与 INSERT 操作而不删除任何行。MERGE 语 句不更改源表。要获取关于 Delete 合并、Insert 合并和 Update 合并的语法与限制的更多 信息,请参阅《GBase 8s SQL 指南:语法》 中 MERGE 语句的描述。

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

评论