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