Как обновить таблицу со списком значений за один раз? - PullRequest
0 голосов
/ 11 июня 2010

у меня

update NewLeaderBoards set MonthlyRank=(Select RowNumber() (order by TotalPoints desc) from LeaderBoards) 

Я пробовал это так -

(Select RowNumber() (order by TotalPoints desc) from LeaderBoards) as NewRanks 
 update NewLeaderBoards set MonthlyRank = NewRanks

Но у меня это не работает .. Кто-нибудь может мне подсказать, как я могу выполнить обновление таким образом?

1 Ответ

2 голосов
/ 11 июня 2010

Вам нужно использовать оператор WITH и полный CTE:

;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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...