所以我在这样的桌子上工作:
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
基本上我只想在不同的情况下才算数。没有使用任何功能或过程的任何想法?连续陈述很好,更多专栏也是如此。
答案 0 :(得分:4)
您想使用dense_rank()函数而不是row_number():
with upd as
(SELECT *,
dense_rank() OVER (ORDER BY [Product Code]) AS rnk
FROM temp
)
UPDATE upd
SET ProductId = rnk