oracle小白求教!
使用oracle資料庫 A表欄位:A1,A2,A3,A4,A5,A6,A1欄位是1, 1.1, 1.2, 1.3, ... 2, 3, .... 10 ,10.1 ,10.2 ... 這種序號,1.1是1的子項,1是1.1的父項,現在想要使用A表內所有父項更新對應子項的A4,A5,A6值(例:用1的A4,A5,A6更新1所有的子項1.1,1.2...的A4,A5,A6欄位,此時對應A2,A3值均相等)請教各位怎么寫這段更新!
uj5u.com熱心網友回復:
你用條件查詢更新就可以啊,字符查詢出子項,然后更新;但老實說,A1欄位寫成1,1.1這種結構實在草率了些uj5u.com熱心網友回復:
我用set =(select from where )會提示單行子查詢回傳多個行,用merge into會提示無法在源表里獲得一個穩定的行uj5u.com熱心網友回復:
正常就是set =(select from where )。查詢回傳多個行是邏輯寫錯了,或者資料與你描述的規則不符uj5u.com熱心網友回復:
update temp_simon2 a set (val1,val2)=(select val1,val2 from temp_simon2 b where trunc(a.id)=b.id and a.id<>b.id)where trunc(a.id)<>a.id
tb名:temp_simon2
id val1 val2
1 用友 合肥
1.1 用友 合肥
1.2 用友 合肥
1.21 用友 合肥
2 梯升 北京
2.1 梯升 北京
uj5u.com熱心網友回復:
是因為你這個陳述句里面每條記錄的set在你(select from where )查詢中,select了多條記錄導致,你仔細理一下條件;如果不是應急的話,表結構改一下吧,后患多多
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/13093.html
標籤:基礎和管理
上一篇:oracle出現這樣怎么辦?
