oracle merge into 的用法詳解+實例

          Posted on 2009-06-18 16:10 林光炎 閱讀(1887) 評論(0)  編輯  收藏 所屬分類: ORACLE
          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 tfa_alarm_act_nms a
          using (select FP0,FP1,FP2,FP3,REDEFINE_SEVERITY
          from tfa_alarm_status) b
          on (a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3)
          when matched then update set a.redefine_severity=b.redefine_severity
          when not matched then insert (a.fp0,a.fp1,a.fp2,a.fp3,a.org_severity,a.redefine_severity,a.event_time
          ,a.int_id)
          values (b.fp0,b.fp1,b.fp2,b.fp3,b.REDEFINE_SEVERITY,b.redefine_severity,sysdate,7777778);

          作用:利用表 tfa_alarm_status跟新表tfa_alarm_act_nms 的b.redefine_severity條件是a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3,如果tfa_alarm_act_nms表中沒有該條件的數據就插入。

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

          posts - 104, comments - 33, trackbacks - 0, articles - 0

          Copyright © 林光炎

          主站蜘蛛池模板: 长沙县| 河津市| 蓝田县| 盘锦市| 溧阳市| 靖州| 新干县| 囊谦县| 上虞市| 那坡县| 梁河县| 高雄县| 深泽县| 基隆市| 德钦县| 府谷县| 北碚区| 乐至县| 新干县| 汉沽区| 治多县| 枣阳市| 全州县| 彭泽县| 新竹市| 清原| 西充县| 双鸭山市| 松阳县| 萨迦县| 新绛县| 修文县| 女性| 灌阳县| 乌恰县| 苏尼特右旗| 南丹县| 手机| 图木舒克市| 涡阳县| 民县|