首页 > 解决方案 > SQL:使用基于 2 列的增量编号更新列

问题描述

我有 2 列,我需要使用更新语句重新排序其中之一。

这是一个例子:

日期时间---------优先级

20.07.2018 10

21.07.2018 3

21.07.2018 13

21.07.2018 4

22.07.2018 23

23.07.2018 3

23.07.2018 7

我需要得到这个:

日期时间---------优先级

20.07.2018 10

21.07.2018 10

21.07.2018 20

21.07.2018 30

22.07.2018 10

23.07.2018 10

23.07.2018 20

我需要根据当前订单和日期更改优先级列。新订单应该用 10... 10, 20, 30, 40, 50... 分隔

有人可以帮忙吗?谢谢。

标签: sqlsql-server

解决方案


您可以使用函数尝试以下row_number查询

update A
set Priority= 10*rn 
from TableA A inner join

( select  date_time, row_number() over(partition by Date_time order by Date_time  ) as rn from TableA
 ) as B
 on A.Date_time=B.Date_time

推荐阅读