【发布时间】:2020-10-01 17:46:52
【问题描述】:
我有一个名为TestTable 的下表,需要更新MsgNum 列,使其具有按日期列排序但按JobNum 分组的唯一编号。
JobNum | MsgNum | Date
320 | 0 | 2020-04-10
320 | 0 | 2020-06-11
320 | 0 | 2020-06-12
330 | 0 | 2020-04-10
330 | 0 | 2020-06-11
330 | 0 | 2020-06-12
以下是我需要结束的内容。
JobNum | MsgNum | Date
320 | 1 | 2020-04-10
320 | 2 | 2020-06-11
320 | 3 | 2020-06-12
330 | 1 | 2020-04-10
330 | 2 | 2020-06-11
330 | 3 | 2020-06-12
我有以下似乎可以生成 ID 号,但无法使用 ID 号更新表 MsgNum 列。
SELECT [JobNum], [MsgNum]
, ROW_NUMBER() OVER (PARTITION BY [JobNum] ORDER BY [Date]) AS id
FROM [dbo].[TestTable]
【问题讨论】:
-
你能用更新命令分享你目前拥有的东西吗?或者,您是否考虑过使用您的 select 语句重建表,即使用您的 select 语句创建一个新表并用新创建的表替换现有表
标签: sql sql-server duplicates sql-update window-functions