2011-09-29 15 views
4

특정 방식으로 테이블의 모든 행을 정렬하는 SQL 쿼리를 만들었습니다.동적 행 인덱스 가져 오기

Q : 동적으로 생성 된 목록에서 특정 행의 행 번호 (색인?)를 어떻게 얻을 수 있습니까?

미리 감사드립니다.

+1

는 x 번째 행 번호에서 어떤 작업을 원하십니까? 행 인덱스를 원하면'row_number() over (order by field1, field2, ...)'를 사용하십시오. – mellamokb

답변

4
SELECT Row_NUMBER() OVER (ORDER BY <your criteria>) as RowIndex, other fields 
FROM MyTable 

업데이트 :

가 필드로이를 추가하려면, 당신은 할 수 있습니다 :

UPDATE T 
SET T.Indexfield = X.RowIndex 
FROM MyTable T 
INNER JOIN (SELECT Row_NUMBER() OVER (ORDER BY <your criteria>) as RowIndex, other fields 
      FROM MyTable) as X 
    ON X.<field> = T.<Field> 
+0

ROW_NUMBER (-> ROW_NUMBER())에 괄호를 추가 할 때까지 작동하지 않는 것 같습니다. 감사. 어떻게하면 목록의 행을 반복하면서이 행의 열에 값으로이 새 색인을 부여할까요? – Acidic

+0

@Acidic - 편집 참조. 나는 업데이트 구문이 유효하다고 생각하지만 주문을 변경해야 할 수도 있습니다. – JNK

+0

'From MyTable T'는 무엇을 의미합니까? 나는 그것을 이해하거나 그것을 작동시키는 것처럼 보일 수 없다. 테이블에 대한 참조를 변수 T로 전달하려고합니까? – Acidic