使用另一個表中的資料進行更新
以下示例為任何員工填寫 PhoneNumber,該員工也是 Customer,目前沒有在 Employees 表中設定的電話號碼。
(這些示例使用示例資料庫中的 Employees 和 Customers 表。)
標準 SQL
使用相關子查詢更新:
UPDATE
Employees
SET PhoneNumber =
(SELECT
c.PhoneNumber
FROM
Customers c
WHERE
c.FName = Employees.FName
AND c.LName = Employees.LName)
WHERE Employees.PhoneNumber IS NULL
SQL:2003
使用 MERGE 更新:
MERGE INTO
Employees e
USING
Customers c
ON
e.FName = c.Fname
AND e.LName = c.LName
AND e.PhoneNumber IS NULL
WHEN MATCHED THEN
UPDATE
SET PhoneNumber = c.PhoneNumber
SQL Server
使用 INNER JOIN 更新:
UPDATE
Employees
SET
PhoneNumber = c.PhoneNumber
FROM
Employees e
INNER JOIN Customers c
ON e.FName = c.FName
AND e.LName = c.LName
WHERE
PhoneNumber IS NULL