我有一个列(TaskPosition)跟踪html表中的记录位置。至关重要的是,即使存在删除,此列中的值仍保持数字顺序且没有间隙。
TaskID TaskName TaskPosition
1 Project Planning 1
2 Define Requirements 2
3 Develop Options 3
4 Finalise Solution 4
如果我删除TaskPosition = 3的记录,那么我想要TaskPosition列
TaskID TaskName TaskPosition
1 Project Planning 1
2 Define Requirements 2
4 Finalise Solution 3
在
ROW_NUMBER()
@Damien_The_Unbeliever期间使用SELECT
表达式生成整数
create table #noGapInt (TaskID int identity(1,1), TaskName varchar(10), TaskPosition int)
insert #noGapInt (TaskName , TaskPosition) values ('a',1),('a',2),('a',3),('a',4),('a',5),('a',6)
select * from #noGapInt
delete from #noGapInt where TaskPosition = 4
select * from #noGapInt
select *, ROW_NUMBER() over(order by TaskID) TaskPosition from #noGapInt