查询根据其他字段用最大值填充Null字段

Query to fill in Null fields with maximum value based on other fields

我有一个包含三个字段的 table:A、B、C。

我想知道如何创建一个查询,以便每个 ANULL C 记录 填充 C对应最高的值B.

使用 Microsoft SQL Server 2012 作为 DBMS

这应该有效:

SQLFiddleDemo

;WITH cte (A, highest_c)
AS
(
   SELECT
      A,
      highest = MAX(C)
   FROM ALinQ1
   GROUP BY A
)
UPDATE tab
SET C = c.highest_c
FROM ALinQ1 tab
INNER JOIN cte c
  ON tab.a = c.a
WHERE tab.C IS NULL
    AND tab.B <> 0;