2013-06-23 10 views
6

SQL Serverで指定された数の行を選択する方法はありますか?私の最初のクエリと同様に、私は行1-5を取得したい、次に行6-10を作成します。あなたの答えのために事前にありがとう:)SQLで特定の行番号を選択する

答えて

14


0 => 1-5

クエリ2オフセットサーバー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

+0

こんにちは!あなたのコードは動作します!どうもありがとうございました!しかし、1つのクエリでこれを複数回実行することは可能ですか? 1つのクエリで1つのテーブルから異なるstartrowとendrowを持つ3つの異なる列? それはこのようになりません: C1 | C2 | C3 AA | BB | CC DD | EE | FF GG | HH – Brenelyn

+0

@Brenelyn心配を。あなたの質問について:なぜあなたは異なるスタートとエンドローを持っていますか?別の質問で詳しく説明して、ここにリンクを貼り付けることはできますか? –

+0

私がここで議論したのは、私がやりたかったことです。 [リンク](http://stackoverflow.com/questions/17269078/subquery-returns-more-than-1-value-sql-error-on-multiple-selection) – Brenelyn

7

SQL Server 2012のために、(単に設定オフセット)これを試して

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

OFFSET
それは行を返すために開始する前に をスキップする行数を指定します。クエリ式から取得します。

FETCH NEXT
OFFSET句の処理後に返される行数を指定します。

OFFSETFETCH NEXTの定義は、hereです。

クエリ1:
等、

SQLフィドル例5 => 6-10オフセット:SQLについてhttp://sqlfiddle.com/#!6/b4b8c/2

+0

** SQL ** =クエリ言語、** SQL Server ** = Microsoft RDBMS製品 –

+0

ありがとうございました!申し訳ありませんが、それは他の質問に重複しているため、申し訳ありませんが何を呼び出すか分からない:) – Brenelyn

+0

@Brenelyn問題はありません。現在のページに合わせてオフセットを設定してください。 クエリ1 =>オフセット0 クエリ2 =>オフセット5 など –

関連する問題