복붙노트

[SQL] SQL에서 선택 특정 행 번호 [중복]

SQL

SQL에서 선택 특정 행 번호 [중복]

내가 SQL 서버의 행의 지정된 번호를 선택할 수있는 방법이 있습니까? 마찬가지로 내 첫 번째 쿼리에, 나는 다음 다음 다음 이후 행 6-10, 행 1 ~ 5를 얻을 싶어? 귀하의 답변에 미리 감사합니다 :)

해결법

  1. ==============================

    1.SQL 서버 2005 + (설정 @startRow 및 @endRow)의 경우 :

    SQL 서버 2005 + (설정 @startRow 및 @endRow)의 경우 :

    SELECT OrderingColumn 
    FROM (
        SELECT OrderingColumn, ROW_NUMBER() OVER (ORDER BY OrderingColumn) AS RowNum
        FROM MyTable
    ) AS MyDerivedTable
    WHERE MyDerivedTable.RowNum BETWEEN @startRow and @endRow
    

    SQL 바이올린 예 : http://sqlfiddle.com/#!3/b4b8c/4

  2. ==============================

    2.SQL 서버 2012, 이것을 시도 (단순히 오프셋 설정)

    SQL 서버 2012, 이것을 시도 (단순히 오프셋 설정)

    SELECT  *
    FROM     MyTable 
    ORDER BY OrderingColumn ASC 
    OFFSET  0 ROWS 
    FETCH NEXT 5 ROWS ONLY 
    

    오프셋: 는 쿼리 식의 행을 반환을 시작하기 전에 지정 행의 수를 건너 뜁니다.

    NEXT를 FETCH : 오프셋 (OFFSET) 절 처리 된 후 지정 행의 수를 반환합니다.

    OFFSET 및 FETCH NEXT의 정의는 여기에서있다.

    쿼리 1 : 오프셋 0 => 1-5

    질의 2 : 5 => 6-10 등 오프셋

    SQL 바이올린 예 : http://sqlfiddle.com/#!6/b4b8c/2

  3. from https://stackoverflow.com/questions/17259716/selecting-specific-row-number-in-sql by cc-by-sa and MIT license