2011-12-15 4 views
2

먼저 질문의 문구를 보내 주시면 죄송합니다. 나는 그것을 표현하는 방법을 너무 확신하지 못한다. 바라건대 아래의 예가 분명합니다.SQL : 열이 바뀌면 재설정되는 색인으로 열을 업데이트하십시오.

나는 테이블이있는 경우

Id | Type | Order 
0 | Test | null 
1 | Test | null 
2 | Blah | null 
3 | Blah | null 

내가 그래서 '유형'으로 테이블을 그룹화하고있어 점진적으로 숫자 '순서를'할당이

Id | Type | Order 
0 | Test | 1 
1 | Test | 2 
2 | Blah | 1 
3 | Blah | 2 

로 돌려하려면 . 유형 당 1에서 시작합니다.

어떻게해야합니까? 내가 사용

DB는베이스 (15)

+0

내 대답은 SQL Server를 가정합니다. RDBMS 란 무엇입니까? 명시 해주세요. –

+0

Sybase를 사용 중입니다. 귀하의 대답이 맞다면 Sybase에서 같은 결과를 얻지 못하는 것 같습니다. –

+0

다른 사람들이 RDBMS를 알 수 있도록 내 대답을 삭제하고'sybase' 태그를 추가했습니다. –

답변

1
select 
    Id, 
    Type, 
    row_number() over(partition by Type order by Id) as [Order] 
from YourTable 

당신은 당신이 찾고있는 무엇을 얻을 수있는 ROW_NUMBER 기능을 활용해야합니다.

ROW_NUMBER (거래-SQL)

각 파티션의 제 1 행에서 시작하여, 그 결과 세트의 파티션 내에서 연속의 일련 번호를 반환.

+0

이것은 내 정확한 문제를 해결하지 못합니다. 그것은 일반적인 경우에 해결의 올바른 방법입니다. –

관련 문제