Oracle Merge Into的用法详解实例

作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表;

语法:

MERGE INTO [your table-name] [rename your table here]

USING ( [write your query here] )[rename your query-sql and using just like a table]

ON ([conditional expression here] AND […]…)

WHEN MATHED THEN [here you can execute some update sql or something else ]

WHEN NOT MATHED THEN [execute something else here ! ]

-------实例-------

merge into  a

using (select id,name from b ) c

on(a.id=c.id )

when matched then update set a.name=c.name

when not matched then insert (a.id,a.name) values (c.id,c.name);

作用:利用表 b 跟新表a ,条件是a.id=b.id,如果a表中没有该条件的数据就插入。

如果你的数据量很大,此sql效率非常高。

作者:51cto博客 Oracle小混子

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2025-01-28 05:08:30

Oracle Merge Into的用法详解实例的相关文章

oracle中distinct的用法详解_oracle

下面先来看看例子: table表 字段1     字段2    id        name    1           a    2           b    3           c    4           c    5           b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录. select distinct name from table 得到的结果

oracle 10g正则表达式REGEXP_LIKE用法详解

ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQL 函数LIKE.INSTR.SUBSTR 和REPLACE 用法相同, 但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符. POSIX 正则表达式由标准的

oracle中interval函数用法详解

一.interval函数 interval函数用于将一个整形值转换成时间值date类型的年月或时分秒. oracle语法: interval 'integer [- integer]' {YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} [(precision)][TO {YEAR | MONTH | DAY | HOUR | MINUTE | SECOND}] 注: 1.年.月.日.时.分.秒可以单独使用. 2.{YEAR | MONTH} to {YE

oracle正则表达式regexp_like的用法详解_oracle

/*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE.INSTR.SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符.POSIX 正则表达式由标准的元字符(m

oracle的TRANSLATE函数用法详解

TRANSLATE ( 'char' , 'from_string' , 'to_string' ) TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string. TRANSLATE是REPLACE所提供的功能的一个超集.如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符.to_string不能为空.Oracle将空字符串解释为N

oracle数据库trunc函数用法详解

trunc函数作用是截取日期,能准确到整点.截取后得到的仍为date数据类型. 一.基本用法 1.默认截取到日,例如: select trunc(sysdate) from dual; 结果:2015-06-24 00:00:00 2.截取年: select trunc(sysdate,'YYYY') from dual; 结果:2015-01-01 00:00:00 3.截取月: select trunc(sysdate,'MM') from dual; 结果:2015-06-01 00:00

oracle tde透明数据加密用法详解

oracle的透明数据加密,是Oracle高级安全选项中的一个部分,需要额外支付软件费用. 这一选项,可以结合多种手段进行加密,包括使用Wallet(PKCS#12标准)以及支持PKCS#11 RAS硬件设备. 在10g中,透明加密支持基于列级的加密,而在Oracle 11gR2中,增加了基于表空间的透明加密. 以下是官方文档中关于加密解密的流程图:psKwaVEgF3V+0RxWZbO3Y/mP2is2i2G/prqMWlBg7R5i70E6HIucZXtxwJLdvWTWokL6Z3F+0R

oracle order by语句用法详解

在执行查询操作时,默认情况下会按照行数据插入的先后顺序来显示行数据,但在实际应用中经常需要对数据进行排序,以显示更直观的数据,数据排序用的就是ORDER BY子句.语法如下: SELECT <*,column [alias],...> FROM table [WHERE condition[s]] [ORDER BY] expr [ASC|DESC]; 1.升序排序 默认情况下,当使用ORDER BY执行排序操作时,数据以升序方式排序,也可以在排序列后指定ASC关键字.注意:当执行升序排序时,

oracle 数据库游标用法详解

oracle 数据库教程游标用法详解 1.什么是游标 游标是一种PL/SQL控制结构,可以对SQL语句进行显示控制,便于对表的数据逐条进行处理 2.游标分类 显示游标: Declared and named by the programmer 隐式游标: Declared for all DML and PL/SQL SELECT statements   3.游标的属性: %FOUND:Evaluates to TRUE if the most recent SQL statement aff