Tsql 如何一次用值列表更新表?
我有 我这样试过-Tsql 如何一次用值列表更新表?,tsql,sql-server-2008,Tsql,Sql Server 2008,我有 我这样试过- update NewLeaderBoards set MonthlyRank=(Select RowNumber() (order by TotalPoints desc) from LeaderBoards) 但它对我不起作用。有人能建议我如何以这种方式执行更新吗?您需要使用WITH语句和完整的CTE: (Select RowNumber() (order by TotalPoints desc) from LeaderBoards) as NewRanks upd
update NewLeaderBoards set MonthlyRank=(Select RowNumber() (order by TotalPoints desc) from LeaderBoards)
但它对我不起作用。有人能建议我如何以这种方式执行更新吗?您需要使用WITH语句和完整的CTE:
(Select RowNumber() (order by TotalPoints desc) from LeaderBoards) as NewRanks
update NewLeaderBoards set MonthlyRank = NewRanks
是的,如果我没记错的话,它被称为updatefrom语句。
;With Ranks As
(
Select PrimaryKeyColumn, Row_Number() Over( Order By TotalPoints Desc ) As Num
From LeaderBoards
)
Update NewLeaderBoards
Set MonthlyRank = T2.Num
From NewLeaderBoards As T1
Join Ranks As T2
On T2.PrimaryKeyColumn = T1.PrimaryKeyColumn