我有产品表,有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
答案 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()