2013-10-17 48 views
2
我有一個列的表

更新一行一行數

id 
-- 
1 
2 
3 
5 
5

我想更新第4行的值設置爲「4」 因此所需的輸出是:

id 
-- 
1 
2 
3 
4 
5

我怎樣才能做到這一點

+0

你的桌子還有什麼?有什麼能夠唯一識別你想改變的行嗎? – Andrew

+0

沒有在該表..只有一列 –

+0

@All對不起,我不知道我們可以在更新查詢中使用CTE – Dhaval

回答

7
WITH CTE AS 
(
    SELECT ID, RN = ROW_NUMBER() OVER (ORDER BY ID ASC) 
    FROM dbo.TableName 
) 
UPDATE CTE SET ID = RN 
WHERE ID <> RN 

Demo

這將根據訂單確定的行號更新所有「不正確」的ID。