merge into tb1 a
using (select b.id, c.price from tb2 b left join tb3 c where b.id = c.id) d --這裡using(可以子查詢)
on a.id = d.id
when matched then
udpdate a.price = b.price where d.product_name like '%ct' --update可以加過濾條件
when not matched then
insert (a.price) values (b.price) where d.product_name like '%ct' --insert物件也可以加過濾條件,已ct結尾的
merge into products p using(select * from newproducts) np
on (p.product_id=np.product_id)
when matched then
update set p.product_name=np.product_name
when not matched then
delete where p.product_id=np.product_id where np.product like '%c'
--清除行的前提是要找到滿足p.product_id=np.product_id的記錄,若t2.name='a' 不滿足t1.name=t2.name,delete不生效!
--delete子句的where必須在最後面
merge into t2
using(select count(*) cnt from t2 where name='d') t --注意這裡的偽表t一定要存在
on t2.name=t.name
when matched then
update set t2.money=100
when not matched then
insert
values('d',200) --對t2表進行自我更新,若在t2表中發現name='d'的記錄,就將其
字段更新為100,若記錄不存在,自動增加name='d'的記錄
Oracle中Merge語句效率問題
大家一定都會遇到過資料庫操作中的 update,也一定會考慮過主鍵重複的問題,簡單的解決方法就是先 select 然後根據返回值判斷是 insert 還是 update.因為公司要求這個用乙個語句執行,所以調查了 oracle 自身的 merge 語句,針對效率就調查的結果如下 操作次數為 1 時 ...
opencv中的merge函式
該函式用來合併通道 原型版本一 void merge const mat mv,size t count,outputarray dst 第乙個引數是影象矩陣陣列,第二個引數是需要合併矩陣的個數,第三個引數是輸出 版本二void merge const vector mv,outputarray d...
pandas中merge的用法
pandas中的merge和concat類似,但主要是用於 兩組有key column的資料 統一索引的資料.通常也被用在database的處理當中。import pandas as pd 定義資料集並列印出 left pd.dataframe right pd.dataframe print le...