2013-10-17 2 views
2
내가 한 열이있는 테이블을 데

단지 내가 4 번째 행의 값을 업데이트 할업데이트 행으로 행 수

id 
-- 
1 
2 
3 
5 
5

에 "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가 업데이트됩니다.

관련 문제