3

所以我正在处理这样的表格:

Sku ProductCode Product Id
01     11011         null
02     11021         null
03     11021         null
04     11011         null
05     11031         null
06     11041         null

我想像这样更新产品ID:

Sku ProductCode Product Id
01     11011         01
02     11021         02
03     11021         02
04     11011         01
05     11031         03
06     11041         04

我正在使用这个查询:

with upd  
as  
(  
SELECT *, ROW_NUMBER() OVER (PARTITION BY [Product Code] ORDER BY [Product Code]) AS rnk  
FROM temp  
)  
UPDATE upd  
SET ProductId = rnk

基本上我只想计算它是否不同。任何不使用任何功能或过程的想法?连续语句很好,更多的列也很好。

4

1 回答 1

5

您想使用 dense_rank() 函数而不是 row_number():

with upd  as  
     (SELECT *,
             dense_rank() OVER (ORDER BY [Product Code]) AS rnk  
      FROM temp  
     )  
UPDATE upd  
    SET ProductId = rnk
于 2012-09-13T20:25:30.807 回答