如何在 SQL 中使用 ROW_NUMBER() 更新列

How to update a column with ROW_NUMBER() in SQL

我在 table 中添加了一个新列。现在我想用函数 row_number() 中的值更新此列。我想这样做是因为我想删除重复的条目。下面提到的代码没有给出所需的输出

UPDATE tab1
SET rownumber = (SELECT ROW_NUMBER() OVER(ORDER BY name ASC) 
             FROM tab1 AS a WHERE a.name = b.name)
FROM tab1 b

问题是,当在 table 中添加一个新列时,它的值为空。 Insert into 在 table 中添加新行但不替换空值。如何使用函数 ROW_NUMBER().

生成的行号更新空值

下面提到的table是我有的

姓名得分

美国银行 10

商业银行 20

富国银行 135

中西部银行 45

美国银行 10

商业银行 20

现在我想要删除重复项后的输出

姓名得分

美国银行 10

商业银行 20

富国银行 135

中西部银行 45

我试图添加一个具有唯一值的新列以获得所需的结果。

试试这个:

UPDATE T
SET T.rownumber = TT.ROW_ID
FROM tab1 AS T
INNER JOIN (SELECT ROW_NUMBER() OVER (ORDER BY name) AS ROW_ID
                  ,name
            FROM Tab1) AS TT
    ON T.name = TT.name