自称第1種兼業ミュージシャン?えむによるブログ 

SQL Serverでの改ページロジック(範囲指定データ取得方法)

MySQLやPostgreだとLIMIT関数で改ページの範囲指定(X行目~Y行目)が簡単にできますがオラクルやSQLServerだと関数がありません。

オラクルだと、ROWNUNを使用したSQLロジックで実装できますが
SQLServerではどうやるのか。

TOP関数を使うと、上位X件は検索できる。

ただし、取り出したい開始行が大きければ大きいほどパフォーマンスが
悪くなってしまいます。
http://www.sqlpassj.org/bunkakai/web/series/ado/04.aspx#l4_5

調べていると、TOPを使わない方法としては

SELECT T1.*, IDENTITY(1, 1) AS [ID] INTO #T1 FROM
(SELECT TOP 100 PERCENT * FROM [TABLE] ORDER BY [COLUMN]) AS T1

SELECT * FROM #T1 WHERE [ID] BETWEEN 1001 AND 1010

DROP TABLE #T1

などあるようです。

■@IT会議室参考ページ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16935&forum=26

また、SQLServer2005なら ROW_NUMBER() があるようです。
■MSDN参考ページ
http://www.microsoft.com/japan/msdn/sqlserver/sql2005/sql_05tsqlenhance.aspx
 
Comment
 
 






(編集・削除用)


管理者にだけ表示を許可
 
Trackback
 
 
http://mism.blog13.fc2.com/tb.php/170-a73548e4
 
 
プロフィール
 
 

えむ

  • Author:えむ
  • 現在ベンチャー企業を経営する傍ら
    兼業ミュージシャンとして活動中。
    お問い合わせはこちらまで。
 
 
最近の記事
 
 
 
 
最近のコメント
 
 
 
 
最近のトラックバック
 
 
 
 
月別アーカイブ
 
 
 
 
カテゴリー
 
 
 
 
ブロとも申請フォーム
 
 
 
 
ブログ内検索
 
 
 
 
RSSフィード
 
 
 
 
リンク