MERGE

作者: susupp | 来源:发表于2018-07-24 18:19 被阅读0次

MERGE语句具有按条件获取要更新或插入到表中的数据行,然后从一个或多个数据源投对表进行更新或者向表中插入行两方面的能力。它最经常被用在数据仓库中来移动大量的数据。

MERGE <hint>
INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
DELETE <where_clause>
WHEN NOT MATCHED THEN <insert_clause>
[LOG ERRORS <log_errors_clause> <reject limit <integer | unlimited>];
MERGE INTO dept60_bonuses b USING (
    SELECT
        employee_id,
        salary,
        department_id
    FROM
        employees
    WHERE
        department_id = 60
) e ON (b.employee_id = e.employee_id)
WHEN matched THEN UPDATE
SET b.bonus_amt = e.salary * 0.2
WHERE
    b.bonus_amount = 0 
DELETE WHERE
    (e.salary > 7500)
WHEN NOT matched THEN
    INSERT (b.employee_id, b.bonus_amt)
VALUES
    (e.employee_id, e.salary * 0.1)
WHERE
    (e.salary < 7500);

其实一般用的写法都没这么复杂,一般也就是:

MERGE INTO tbl1 a
USING tbl2 b
ON a.id = b.id
WHEN MATCHED THEN UPDATE
SET a.col1=b.col, a.col2=b.col2
WHEN NOT MATCHED THEN INSERT
(a.col1, a.col2) VALUES (b.col1, b.col2);

相关文章

  • Git常见场景解决方法总结

    放弃某次merge 假如你merge的时候产生了很大的冲突,想先放弃某次merge,你可以: git merge ...

  • Git:真实 merge

    前言 Git:真实 merge 是一种 merge 的方式,除去真实 merge,肯定还有不真实的 merge,就...

  • R的merge用法(2018-06-05)

    R语言-merge函数 merge函数的声明: merge( x, y, by = intersect(names...

  • git merge and rebase

    一、merge合并分支每次merge的时候都会生成一个commit 标志是merge的信息 Merge remot...

  • git merge一个指定文件

    git里面的merge是全merge ,没有单个文件merge。 要实现一个文件的merge ,可以使用git c...

  • pandas表连接

    Pandas Dataframe有三种连接方法,分别是merge,join,concat。 merge merge...

  • Git系列4:git merge合并操作

    Fast forward merge 步骤: 解决Merge冲突

  • git merge

    冲突状态放弃 merge git merge --abort 冲突的文件使用其它分支 git merge -Xth...

  • leetcode每日一题

    Merge Sorted Array Question leetcode: Merge Sorted Array ...

  • Merge Sort

    Merge Sort Based on the idea of divide and conquer, merge...

网友评论

      本文标题:MERGE

      本文链接:https://www.haomeiwen.com/subject/usuymftx.html