前回は、DB2の場合にSELECT文の取得件数を制限し、任意の件数を取得する方法を紹介しました。
今回は、「SQL Server」の場合です。
なお、今回のバージョンは以下です。
- SQL Server 2008 Express Edition
TOP句を使用して、はじめのX件を取得するSQL
はじめのX件を取得したい場合は、SELECT句の先頭にTOP句を使用する。
使用例はこちら。
1 2 3 4 5 6 7 8 9 | --testテーブルをcolumn1順にはじめの100件のみ取得する SELECT TOP 100 column1 ,column2 FROM test ORDER BY column1 |
ROW_NUMBER関数を使用して、X件目~Y件目を取得するSQL
X件目~Y件目を取得したい場合は、ROW_NUMBER関数を使用して行番号を振り、そこから取得件数を制限することができる。
使用例はこちら。
1 2 3 4 5 6 7 8 9 | --testテーブルをcolumn1順に101件目~200件目のみ取得する SELECT column1 FROM ( SELECT column1,ROW_NUMBER() OVER ( ORDER BY column1) AS rownum FROM test) AS t WHERE rownum BETWEEN 101 AND 200 ORDER BY rownum |
最後に
SQL ServerのSELECT文の取得件数を制限し、任意の件数を取得するには、TOP句・ROW_NUMBER関数を使おう。
コメント