SQL Server - 从一行中提取数据并更新另一行

时间:2013-02-04 22:24:15

标签: sql sql-server

我在SQL Server中有一个表,其中包含以下行和列(A代码,描述,长度和B代码)

A-Code Desc Length B-Code

A100 Rural-3D 25 A100

A100 NULL 55 B100

**在第一行A-code = B-Code

**在第二个A代码中<> B-Code和Desc为NULL

我想要做的是使用第一行中的Desc值更新第二行的Desc列(A代码<> B代码),其中A-Code = B-Code

这样我的最终表结果如下

A代码描述长度B代码

A100 Rural-3D 25 A100

A100 Rural-3D 55 B100

请帮忙。

由于

1 个答案:

答案 0 :(得分:4)

UPDATE a
SET a.[Desc] = b.[Desc]
FROM MyTable A
INNER JOIN MyTable B on a.[A-Code] = b.[A-Code] and b.[A-Code] = b.[B-Code]
WHERE a.[A-Code] <> a.[B-Code]
And a.[Desc] IS NULL;

SqlFiddle