oracle聯合查詢並更新乙個表字段的sql語句

2021-08-08 18:20:17 字數 437 閱讀 8212

更新某乙個欄位寫起來簡單,也容易理解:

update tablea a set a.name=(select name from tableb b where a.id=b.id)

更新多個欄位就顯得比較冗長:

update tablea a set a.name=(select name from tableb b where a.id=b.id),a.age=(select age from tableb b where a.id=b.id)

如果需要更新的字段太多,這樣寫就太亂了,而且重複查詢效率也大打折扣,可以改用這樣的寫法:

merge into tablea a using tableb b on ( a.id = b.id ) when matched then update set a.name=b.name,a.age=b.age,a.title=b.title

oracle 查詢並補位生成乙個編號

應用場景 下發檔案會需要生成 單位 第 00x 號檔案 通常會根據庫裡面現有記錄數 查詢並生成乙個新的編號,如果用 查詢生成會比較麻煩,然而有了oracle函式就會方便很多 1.select lpad 11 3,0 from dual 結果lpad 第乙個引數表示需要處理的字串 第二個表示補齊後總長...

乙個多表聯合查詢引發的思考

朋友做乙個專案,遇到乙個多表聯合查詢的需求。需要乙個sql,當a表中system id值為123時,找到b表和c表的關聯,當b表滿足system id值為123時,包含其中的role id資料,顯示c表中name資料。例如查詢結果為 james lucy.t table a表 idsystem id...

oracle備份乙個使用者並遷移

今天用到了將oracle中乙個使用者下的所有資訊匯入到另乙個機器中的使用者下,例如有一台機器中某使用者為aa,需要在另一台機器中將aa使用者下的所有資訊,如表 表空間 索引拷貝到本機的資料庫上 首先檢視aa使用者下的預設表空間,或者根據sysdba使用者檢視 select username,defa...