我在SQL Server 2008数据库中有一个表。我需要更新特定列的值,但同时增加它的值。解释:
如果表格是:
CREATE TABLE [dbo].[Player]
(
[PlayerID] [uniqueidentifier] NOT NULL,
[UnitID] [uniqueidentifier] NULL,
[ExerciseID] [uniqueidentifier] NOT NULL,
[Designation] [nvarchar](256) NOT NULL
)
我想浏览ExerciseID
42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7
Designation
的所有行,并将Player - X
更新为Player - 1
,但X应从1开始,并自行增加1每次。
因此,第一个要更新的玩家将是Player - 2
,第二个将是{{1}},依此类推。
我不知道从哪里开始这样的事情!
由于
答案 0 :(得分:7)
; with numbering as (
select PlayerID,
UnitID,
ExerciseID,
Designation,
row_number () over (order by PlayerID) - 1 rn
from Player
where ExerciseID = '42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7'
)
update numbering
set Designation = 'Player - ' + convert(varchar(10), rn)