我在表格中添加了一个新列。现在我想用函数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
我试图添加一个具有唯一值的新列以获得所需的结果。
答案 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