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

时间:2015-01-08 08:47:47

标签: sql-server-2008

我在表格中添加了一个新列。现在我想用函数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

问题是当在表中添加新列时,其值为null。 Insert into在表中添加新行但不替换null。如何使用函数ROW_NUMBER()生成的行号更新空值。

下面提到的表格是我的

名称得分

美国银行10

Commerce Bank 20

富国银行135

Bank Midwest 45

美国银行10

Commerce Bank 20

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

名称得分

美国银行10

Commerce Bank 20

富国银行135

Bank Midwest 45

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

1 个答案:

答案 0 :(得分:4)

试试这个:

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