如何在 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
我在 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