• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL xx件目からxx件目までを抽出したい)

SQL xx件目からxx件目までの抽出方法とは?

このQ&Aのポイント
  • SQLを習いはじめた人が知りたい、テーブルのxx件目からxx件目までの抽出方法についての質問です。
  • ユーザーIDが100件あるテーブルから、30件目から50件目までのユーザIDを取得し、別のテーブルに登録したいと考えています。
  • 具体的な抽出方法について教えていただける方がいれば、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

分析関数を使った例。SQL SERVER2005から、ORACLEなら8iのEE(9iからはSTANDARD EDITIONも)から使えます。 SELECT A.* FROM ( SELECT *,ROW_NUMBER() OVER( ORDER BY ソートキー項目 ) RN FROM テーブル名 ) A WHERE RN BETWEEN 30 AND 50

optimas
質問者

お礼

回答ありがとうございます。 テープルはこのような感じなのですが、頂いた回答からすると… +---------+-----------+ | USER_ID | USER_NAME | +---------+-----------+ | 001 | nameA | +---------+-----------+ | 021 | nameB | +---------+-----------+ | 042 | nameC | +---------+-----------+ DECLARE CURSOR cursor_name IS SELECT TBL_USERID.USER_ID FROM  ( SELECT USER_ID,ROW_NUMBER() OVER( ORDER BY USER_ID ) RN  FROM TBL_USERID) TBL_USERID WHERE RN BETWEEN 30 AND 50;  getid VARCHAR2(16);  ryear NUMBER := '2008';  ryear2 NUMBER := '08';  rmonth NUMBER;  rday NUMBER;  usercnt NUMBER;  rcnt NUMBER := '0'; --処理開始 BEGIN  SELECT count(USER_ID) INTO usercnt FROM TBL_USERID ;  OPEN cursor_name ;  LOOP   FETCH cursor_name INTO getid ;    EXIT WHEN cursor_name%NOTFOUND;   ・   ・   ・ となるのでしょうか? いますぐ検証環境でテストができないので・・

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

たしかにSQLServerの書き方には見えませんね(汗 MySQLならLIMITがあります。SQLServerだと   SELECT TOP 20 [column]     FROM [table]     WHERE [column] NOT IN (SELECT TOP 30 [column] FROM [table]); などとすれば31~50件めが取得できます(元のselectとサブのselectのorderを合わせないといけません)。

すると、全ての回答が全文表示されます。
回答No.1

ROWNUM擬似列や分析関数を利用すれば、もっと簡単に行えます。

すると、全ての回答が全文表示されます。

関連するQ&A