我想为现有的colomns中的特定ID提供序列号

时间:2016-03-24 08:47:33

标签: sql sql-server tsql sql-update row-number

我有产品表,有5000条记录,我需要更新2000条记录的序列号。

旧表

Id  Name   Price  Recommended
45  Lotus  450    500
55  Cherry 560    500
56  Berry  789    566

新表格

Id  Name   Price  Recommended
45  Lotus  450    1
55  Cherry 560    2
56  Berry  789    3

3 个答案:

答案 0 :(得分:1)

不幸的是,您不能直接在set子句中使用窗口函数。但是,您可以在子查询中使用它,然后在更新时将该查询加入到表中:

UPDATE p
SET    p.recommended = rn
FROM   products p
JOIN   (SELECT id, ROW_NUMBER() OVER (ORDER BY recommended) AS rn
        FROM   products) r ON p.id = r.id

<强> SQLFiddle

答案 1 :(得分:0)

select row_number() over ( order by (select null)), *
from OldTable

答案 2 :(得分:0)

你可以试试cte

listwidgetitem.text()