- - PR -
SQLのSELECTで●番目〜◆番目までを取得
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-06-27 08:41
お世話になります。 SQLで、”●番目〜◆番目までを取得”ということはできるのでしょうか? SELECTする件数が多いので、できるだけレスポンスをあげたいのです。 もし、直接こういった命令がなかったとして、皆様は、こういった場合、 どのような技術で代用してているのでしょうか?こういったケースが必要となるのは多々あるような気がしましたので。 SQLServer2000です。 よろしくお願い致します。 |
|
投稿日時: 2006-06-27 10:01
プログラミングと開発者のためのCodeZine:SQL Server 2000で大量の結果セットを効率的にページングする方法(SQL, ページング, DataGrid, GridView)
http://codezine.jp/a/article.aspx?aid=391 |
|
投稿日時: 2006-06-27 10:09
N件ごとに取得して処理したいって場合になりますが、
私の場合は、Topで取得行数を制限し、 最終行のキー項目の値を保持しておきます。 その保持したキー値より大きい値を持つキーのデータを取得条件とし、 そこからTopでまた取得条件を取得する感じですね。 例として簡単に10件で書くと 初回に発行するSQLは SELECT top 10 key FROM table order by key ; とします。 そこで、最終行のkeyを取得し、 2回目以降は SELECT top 10 key FROM table where key > 値 order by key ; としますね。 ただ、このままだと「21〜31」行目を表示している時に 「11〜20」行目を表示したいって場合には対応しきれないので、 テーブル値関数をつくり、使う形にすると思います。 #テーブル値関数で行番号を付加して戻すだけのストアドを作成する。 ちなみにですが、 SQLServer2005でしたら、ROW_NUMBER関数が追加されたので、 それによりROW_NUMBERが返す値に対し、A以上B未満とかかけるようになりました。 _________________ 夏椰 @ わんくま同盟 夏椰の庵 Microsoft MVP for Windows Server System - SQL Server ( Jul 2006 - Jun 2008 ) |
1
