gpt4 book ai didi

sql - 想要在oracle sql的MERGE语句中添加一些条件以进行插入/更新

转载 作者:行者123 更新时间:2023-12-03 21:20:04 24 4
gpt4 key购买 nike

我必须在表target_table中插入/更新一些记录。这些记录是一个source_table。

我正在使用MERGE在target_table中进行更新/插入。查询如下

MERGE
INTO target_table tgt
USING source_table src
ON ( src.column1 = tgt.column1 and
src.column2 = tgt.column2)
WHEN MATCHED
THEN
UPDATE
SET tgt.column3= src.column3,
tgt.column4 = src.coulmn4
WHEN NOT MATCHED
THEN
INSERT ( tgt.column1,
tgt.column2,
tgt.column3,
tgt.column4 )
VALUES ( src.coulmn1,
src.coulmn2,
src.coulmn3,
src.coulmn4);


我想在更新中添加一些特定条件。

IF target_table.column3 in (val1','val2)

那么就应该只有更新,否则就没有更新或插入。

最佳答案

您可以简单地将WHERE子句添加到UPDATEMore about it in oracle docs.

因此,在您的情况下,它应类似于:

...
WHEN MATCHED
THEN
UPDATE
SET tgt.column3= src.column3,
tgt.column4 = src.coulmn4
WHERE tgt.column3 IN (val1, val2)
WHEN NOT MATCHED
...

关于sql - 想要在oracle sql的MERGE语句中添加一些条件以进行插入/更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com