sql - 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... 分隔
有人可以帮忙吗?谢谢。
解决方案
您可以使用函数尝试以下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
推荐阅读
- html - 如何防止动态添加的父类添加到Angular Material,mat-selection-list中的子元素?
- php - 限制主目录显示所有帐户
- sql - 在 SQL 中按时间段跨度分区(隔离)
- git - Git:还原后再次合并分支
- python - 试图判断一个对象是否是一个函数,而 datetime.datetime.now 引起了一个奇怪的问题
- vbscript - 查找 DBF 数据库中所有表的名称
- mariadb - 从集群中删除 Galera 节点
- c++ - cpp 运算符重载操作数位置 [] vs ==
- ios - 如何以编程方式更改视图控制器宽度大小?
- reactjs - for循环在渲染函数reactjs中不起作用