溫馨提示×

oracle update select用法是什么

小億
108
2024-09-03 04:51:36
欄目: 云計算

在Oracle數(shù)據(jù)庫中,UPDATE SELECT語句的用法通常涉及到將一個表的數(shù)據(jù)更新為另一個表或子查詢的數(shù)據(jù)

UPDATE table1
SET (column1, column2, ...) = (SELECT columnA, columnB, ... FROM table2 WHERE some_condition)
WHERE some_condition;

這里的table1是要更新的目標(biāo)表,table2是要從中獲取數(shù)據(jù)的源表。column1, column2, … 是目標(biāo)表table1中要更新的列,而columnA, columnB, … 是源表table2中要獲取數(shù)據(jù)的列。some_condition是一個條件,用于指定如何匹配源表和目標(biāo)表中的行。

以下是一個具體示例:

假設(shè)有兩個表:employeessalary_history。我們想要將employees表中的salary字段更新為salary_history表中最近的salary值。

UPDATE employees e
SET e.salary = (SELECT sh.salary FROM salary_history sh WHERE sh.employee_id = e.employee_id ORDER BY sh.effective_date DESC FETCH FIRST 1 ROW ONLY)
WHERE EXISTS (SELECT 1 FROM salary_history sh WHERE sh.employee_id = e.employee_id);

在這個示例中,我們首先使用子查詢從salary_history表中獲取每個員工的最近salary值(按effective_date降序排列并只獲取第一行)。然后,我們將employees表中的salary字段更新為子查詢返回的值。最后,我們使用WHERE EXISTS子句確保只更新那些在salary_history表中有記錄的員工。

0