oracle中的UPDATE FROM 解決方法

2021-03-31 08:56:31 字數 1062 閱讀 5119

oracle中沒有類似sql server的update from功能

乙個解決的辦法是

/* formatted on 2004/10/26 11:15 (formatter plus v4.5.2) */

update tablea a

set a.fieldforupdate =

(select b.fieldsource

from tableb b

where a.keyfield = b.keyfield)

where exists (

select b.fieldsource

from tableb b

where a.keyfield = b.keyfield)

例子表text

fielda                fieldb               fieldc

1                2004-1-1        2004-2-1 

2                2004-2-2        2004-3-1

3                2004-3-1        2004-4-1

如果要根據記錄2的b字段值更新記錄1的c字段值則可以使用如下sql

/* formatted on 2004/10/26 11:25 (formatter plus v4.5.2) */

update text a

set a.fieldb = (select b.fieldb

from text b

where a.fielda = b.fielda

and b.fieldb > a.fieldb

and   b.fieldb

- a.fieldb <= 35)

where exists ( select b.fieldb

from text b

where a.fielda = b.fielda

and b.fieldb > a.fieldb

and   b.fieldb

- a.fieldb <= 35)

oracle中的角色

oracle 中的角色 一 何為角色?我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題 如果有一組人,他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。有乙個很好的解決辦法就 是 角色。角色是一組許可權的集合,將角...

Oracle中的約束

資料的完整性用於確保資料庫資料遵從一定的商業和邏輯規則,在oracle中,資料完整性可以使用約束 觸發器 應用程式 過程 函式 三種方法來實現,在這三種方法中,因為約束易於維護,並且具有最好的效能,所以作為維護資料完整性的首選。1.約束 約束用於確保資料庫資料滿足特定的商業規則。在oracle中,約...

oracle中的序列

oracle中的序列 sequence 的作用相當與sqlserver中的identify作為乙個表的自動增加且唯一標識的列 下面我就用乙個簡單的序列來實現 1.建立序列 create sequence sq sq宣告乙個序列的名稱 start with 1 宣告序列的開始值 immediate b...