2017-10-02 8 views
0

ID와 시퀀스 번호 (SEQ) 시작 번호가있는 테이블이 있습니다. 나는 서열에 따라 각 ID에 대한 SQ 번호를 업데이트 할순차 값 업데이트

이 같은 결과 테이블을 얻으려면이

ID  SQ SEQ 
---  -- --- 
100  0  11 
100  0  11 
100  0  11 
200  0  13 
200  0  13 
200  0  13 
200  0  13 

같은 내 테이블 : 내가 사용이 작업을 수행 할 수있는 방법

ID  | SQ | SEQ 

100  11  11 
100  12  11 
100  13  11 
200  13  13 
200  14  13 
200  15  13 
200  16  13 

을 TSQL?

답변

1

의 사용

declare @tbl table(id int, sq int, seq int) 
insert into @tbl 
select 100,0,11 union all 
select 100,0,11 union all 
select 100,0,11 union all 
select 200,0,13 union all 
select 200,0,13 union all 
select 200,0,13 union all 
select 200,0,13 

select id,(ROW_NUMBER() over(partition by id order by id) + seq - 1) as sqn,seq from @tbl 

결과

id sqn seq 
100 11 11 
100 12 11 
100 13 11 
200 13 13 
200 14 13 
200 15 13 
200 16 13 
+0

정말 고마워요! 그것은 매력처럼 작동했습니다. – Kaur

0

시도해보십시오.

SELECT 
ID,ROW_NUMBER() OVER(ORDER BY ID) AS SQ,SEQ 
FROM YOUR_TABLE 

그리고 업데이트

, 그것은 테스트 데이터로이

select id,(ROW_NUMBER() over(partition by id order by id) + seq - 1) as sqn,seq from @tbl 

전체 샘플 코드를 시도

update a set sq = rn 
    ID,ROW_NUMBER() OVER(ORDER BY ID) AS rn,SEQ 
    FROM YOUR_TABLE) as a