婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法

在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法

熱門標簽:百度地圖標注途經(jīng)點 慧營銷crm外呼系統(tǒng)丹丹 圖吧網(wǎng)站地圖標注 開發(fā)外呼系統(tǒng) 地圖標注養(yǎng)老院 哪個400外呼系統(tǒng)好 愛客外呼系統(tǒng)怎么樣 哈爾濱電話機器人銷售招聘 山東crm外呼系統(tǒng)軟件

以前只會寫一些簡單的updaet語句,比如updae table set c1='XXX' 之類的

今天遇到一個數(shù)據(jù)訂正的問題,項目背景如下,有個表A,有兩個字段a1,a2還有一個關(guān)聯(lián)表B,其中也有兩個字段,b1和b2。其中a2和b2是關(guān)聯(lián)的,想把A中的字段a1更新成B中的b1

理論上sql應(yīng)該挺好寫的,但是在oralce中實現(xiàn)了半天一直報語法錯誤。而且確實還有些小小細節(jié)沒有注意到。

首先上測試數(shù)據(jù)

表1,ZZ_TEST1

表2,ZZ_TEST2

要把表一的text更新成表二的text1值,對應(yīng)的sql如下:

update ZZ_TEST1 t1 set t1."text" = (
 select T2."text1" from ZZ_TEST2 t2 where T2."pid"=t1."id"
) 
WHERE EXISTS
(
 SELECT 1 FROM ZZ_TEST2 t2 where T2."pid"=t1."id"
)

后面的where條件表示一個限制條件,只更新那些符合條件的數(shù)據(jù),也可以寫成

update ZZ_TEST1 t1 set t1."text" = (
 select T2."text1" from ZZ_TEST2 t2 where T2."pid"=t1."id"
)
where t1."id" in (select "pid" from ZZ_TEST2 )

另外還有一種merge的寫法,對應(yīng)的sql如下:

merge into ZZ_TEST1 t1 using ZZ_TEST2 t2 on (t1."id" =t2."pid") 
 
when matched then
 
update set t1."text"=t2."text1"

為了避免T2中有多條數(shù)據(jù)對應(yīng)T1中的數(shù)據(jù),可以把sql改成如下的方式:

MERGE INTO ZZ_TEST1 t1 USING 
( 
SELECT * FROM ZZ_TEST2 X WHERE X. ROWID = 
(SELECT MAX(Y.ROWID) FROM ZZ_TEST2 Y WHERE X."id" = Y."id" )
 ) 
t2 
ON (t1."id" = t2."pid") 
WHEN MATCHED THEN
UPDATE SET t1."text" = t2."text1"

還有一種update from 的語法,經(jīng)過測試在oracle和mysql中不適用


總結(jié)一下,項目中嘗嘗需要把一張表的字段更新到另一張表中的某一個字段。可以使用update語法,并要做好限定。會使用merge的語法,另外還有一種merge的語法也可以,update from 不能再oracle和mysql中使用。

標簽:和田 固原 開封 甘肅 青島 承德 周口 武漢

巨人網(wǎng)絡(luò)通訊聲明:本文標題《在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法》,本文關(guān)鍵詞  在,Oracle,數(shù)據(jù)庫,中,同時,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 望城县| 治多县| 夹江县| 郧西县| 开封县| 连云港市| 静安区| 武胜县| 出国| 井陉县| 翁源县| 昆明市| 虹口区| 盐城市| 大关县| 买车| 菏泽市| 汤阴县| 汉中市| 八宿县| 呼玛县| 永安市| 象山县| 南平市| 朝阳市| 任丘市| 高陵县| 武胜县| 海阳市| 塔河县| 新竹县| 九龙县| 济阳县| 青川县| 南昌县| 安阳市| 广州市| 红河县| 临沧市| 安义县| 广东省|