本節(jié)內(nèi)容小編要和大家分享的是Oracle數(shù)據(jù)庫更新(pdf格式免費版教程),想進行oracle學(xué)習(xí),了解oracle數(shù)據(jù)庫更新語句的小伙伴可以進行下載查閱哦!
溫馨提示:
本文檔為PDF格式文檔,因此需確保在閱讀之前你已經(jīng)安裝了PDF閱讀器,如果尚未安裝閱讀器,建議下載福昕PDF閱讀器或其他PDF閱讀器,進行安裝后閱讀。
東坡學(xué)堂
Oracle數(shù)據(jù)庫更新常見問題及解答
oracle數(shù)據(jù)庫update語句的疑問——案例如下:
我在表A中的數(shù)據(jù)如下
name cou1 cou2 cou3 cou4
na1 1 null null null
na2 2 null null null
現(xiàn)在我需要從表B中想表A中更新數(shù)據(jù),使用select語句從B中返回的結(jié)果集為
B_name B_cou1
na1 2
na2 3
我怎么才能使這個能夠得到正確的添加?
我原來的語句是
update A set cou2=(select B_cou1 from B where(條件1)) where name=(select B_name from B where(條件1))
報錯 返回值不止一行,求解應(yīng)該怎么寫SQL才能使得B中數(shù)據(jù)和正確更新到B中數(shù)據(jù)?
解答:
你的語句太混亂了,按照你的意思你需要明確幾點。
1、使用b表數(shù)據(jù)更新a表,那么where條件是什么,也就是說,更新a表中哪些數(shù)據(jù),用b表中的哪些數(shù)據(jù)更新,二者的關(guān)系是什么。從你的語句中我看不出b表和a表的關(guān)聯(lián)。
2、找到關(guān)聯(lián)條件后,通過關(guān)聯(lián)條件查出的b表數(shù)據(jù)是否唯一,如果不唯一,還是會出現(xiàn)“返回值多于一行”的錯誤。
按照你的表結(jié)構(gòu)和數(shù)據(jù),假設(shè)A表和B表中的name列唯一,以name作為關(guān)聯(lián),可以這樣寫來實現(xiàn)你的更新目的:
update A set cou2 = (select B_cou1 from B where B.B_name = A.name) where name in (select B_name from B where B.B_name = A.name)
這條語句必須滿足name在a、b表中唯一的條件,才能使用。
以上問答僅供參考!
更多教程資料下載,敬請關(guān)注東坡下載站!
- PC官方版
- 安卓官方手機版
- IOS官方手機版