如何编写一个查询,通过使用带有示例的 SELECT 语句在表中 UPDATE 列?此 SQL Server 中的 UPDATE FROM SELECT 是一个常见问题。在本例中,我们将使用下面显示的数据。

下表将显示 Employee Duplicate 表中的数据。我们的任务是使用上面指定的表更新此表中的列(firstname、lastname 和 Yearly Income)。

SQL Server 中如何从 SELECT 进行 UPDATE 示例?
在此示例中,我们将向您展示如何使用 UPDATE 语句和 SELECT 语句以及 子查询。
UPDATE [EmployeeDuplicates] SET [YearlyIncome] = ( SELECT [YearlyIncome] FROM [Employee] WHERE [Employee].EmpID = [EmployeeDuplicates].EmpID) GO
Messages
--------
(14 row(s) affected)
现在我将向您展示 SQL Server 更新后的表

UPDATE FROM SELECT 示例 2
上述示例可能是更新单个列的一个很好的选择。在此 UPDATE SELECT 示例中,让我们看看如何在服务器中使用 JOIN 进行 UPDATE 语句。
UPDATE [EmpDup] SET [EmpDup].[FirstName] = [Emp].[FirstName], [EmpDup].[LastName] = [Emp].[LastName], [EmpDup].[YearlyIncome] = [Emp].[YearlyIncome] FROM [EmployeeDuplicates] AS [EmpDup] INNER JOIN [Employee] AS [Emp] ON [EmpDup].EmpID = [Emp].EmpID WHERE [EmpDup].EmpID = [Emp].EmpID GO

现在我将向您展示更新后的表

SQL UPDATE SELECT 示例 3
在本例中,我们展示了如何使用 SELECT 语句更新表列。在这里,我们在 FROM 语句中使用 子查询。
UPDATE [EmployeeDuplicates]
SET [FirstName] = [Emp].[FirstName],
[LastName] = [Emp].[LastName],
[YearlyIncome] = [Emp].[YearlyIncome]
FROM (SELECT EmpID,
[FirstName],
[LastName],
[YearlyIncome]
FROM [Employee]
) [Emp]
WHERE [EmployeeDuplicates].EmpID = [Emp].EmpID
GO

现在我将向您展示更新后的表

SQL Server 中如何从 SELECT 进行 UPDATE 示例 4
在本例中,我们将向您展示,如何使用服务器中的 MERGE Statement 从 SELECT 语句更新表列。
MERGE INTO [EmployeeDuplicates] AS [EmpDup]
USING (
SELECT EmpID,
[FirstName],
[LastName],
[YearlyIncome]
FROM [Employee]
) [Emp]
ON [EmpDup].EmpID = [Emp].EmpID
WHEN MATCHED THEN
UPDATE
SET [EmpDup].[FirstName] = [Emp].[FirstName],
[EmpDup].[LastName] = [Emp].[LastName],
[EmpDup].[YearlyIncome] = [Emp].[YearlyIncome];
运行上面的 merge update from the select query
Messages
--------
(14 row(s) affected)
现在我将向您展示使用此 update from the select 语句更新后的表。
