SQLで行番号を表示する方法

このQ&Aのポイント
  • SQL Plusを使用してOracleのDBに接続し、行番号を表示する方法について教えてください。
  • 選択された行に1、2、3といった行番号を振る方法を、SQL Plusを使用してOracleのDBに接続する場合に教えてください。
  • SQL PlusでOracleのDBに接続し、選択された行に1、2、3といった行番号を表示する方法について教えてください。
回答を見る
  • ベストアンサー

SQLで行番号を表示する方法

OracleのDBにSQL Plusで接続して、結果を表示します。 このとき、選択された行に1、2、3と番号を振る方法を教えてください。 Select ???, column1, column2 from table_name; ↑このSQLで、???の部分に何かを指定すると、↓こんな結果が出たと思います。 ??? column1 colmun2 ------------------------- 1 data11 data21 2 data12 data22 3 data13 data23 : : : このようにする方法があったと思うんですが、調べても見つかりませんでした。 ご存知の方がいたら教えてください。

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

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

「N件目からM件のレコードを取得する」場合の方法を利用します。 SELECT ROWNUM ???, column1, column2 FROM questions; の事でしょうか? 但し、order by 句があると、rownum の順序が変わってしまいます。 order by 句がある場合、 SELECT ROW_NUMBER() OVER(ORDER BY column1 DESC) ??? column1, column2 FROM questions; とします。

k_tracker
質問者

お礼

有難う御座います。 ROWNUMでうまくいきました。

関連するQ&A

  • SQL-Server 6.5で最初の数行を抽出するには?

    SQL-Server 6.5で最初の数行を抽出するにはどのようにすればよろしいでしょうか? Oracleの場合、 SELECT * FROM TABLE_NAME WHERE ROWNUM <= 10; JETの場合、 SELECT TOP 10 * FROM TABLE_NAME; ですが、これをSQL-Serverで行う場合をご教授下さい。

  • SQL*PLUSで列幅変更したい。

    こんにちわ。 いまORACLE9iを使用している者です。 SQL*PLUSで, つぎのようなSELECT文を発行しました。 「SELECT HOGEKBN AS ほげほげ区分 FROM HOGE_TABLE」 「HOGEKBN」は1桁のデータなので, 実行結果に列名である"ほげほげ区分"が表示されません。 これを表示したいと思い, 「 SELECT HOGEKBN AS ほげほげ区分 FROM HOGE_TABLE COLUMN ほげほげ区分 FORMAT A20 」 としたところ, COLUMN~の行で, "ORA-00933: SQLコマンドが正しく終了されていません。" というエラーメッセージが出てしまいます。 SQL*PLUSで列幅指定するにはどうすれば良いでしょうか? 教えてください。よろしくお願いします。

  • Oracle SQLの、where句内の条件文について教えてください。

    Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定)   and (2)(column_nameに、●●が含まれるデータ)

  • プレインPHPでのSQL検索結果取得

    初心者の質問ですみません。 フレームワークをずうっと使って来たのですが、フレームワークを使わずに検索をしようとしたところ、全く思うようにいかず困っています。 SELECT * FROM table のような単純なSQL文なのですが、PEARを使って $sql = "SELECT * FROM table"; $result = $conn->query($sql); としvar_dumpしてみると、期待していたSQLのデータが表示されません。 フレームワークを使っていると、この時点でどのフレームワークでもきれいに連想配列で表示できていました。 その辺が、フレームワークのフレームワークたるゆえんなのでしょうか..... ただ、結果は取得できているようで、 $count = $result->numRows(); としてやると正しい件数が表示されますし、カラム名を指定して while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){ echo $rs['column_name']; } としてやるとカラムの値を表示します。 やりたいこととしては、検索結果を連想配列で取得し、foreachで行ごとに処理を行うことで、whileで$rs['column_name']を取得できることから、最悪でも力技で行ごとにカラム情報を全て取得して配列を作ってやることはできるとは思うのですが、もっと良い方法が無いはずがないと思います。 教えていただけますでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • SQL文について

    テーブルの結合について教えてください。 (DBはオラクルです) select * from table1,table2 where table1.カラム名=table2.カラム名; で、結合が出来ることは分かりました。 やりたいことはテーブルの結合と、ある期間のデータを持ってきたいのです。 select カラム名 from table1 where カラム名 between '20020213' and '20020218'; で期間を決めて引き出すやり方も分かっています。 一度に結合と期間を決めて引き出すやりかたってどうすればよいですか? それとも不可能ですか? 教えてください。

  • ORACLEで一番最初の結果だけを取る方法

    使っているオラクルのバージョンは8iです。 SQL文を投げて一番上に来る行だけを取得したいのですが、どのようなSQL文を作ればよろしいのしょうか? 例えば下のSQLを投げたらテーブル名全て返ってきますが、結果の一番上の行だけを取得したいのです。 select TABLE_NAME from all_tables よろしくお願いします。

  • oracle10g(10.2.0.1.0)のsql*plusでの出力について

    質問させていただきます。 sql*plusを使用して以下のような簡単なテーブルを作成しました。  create table XXX_TBL ( NUM NUMBER(3), NAME CHAR(5)); データをINSERT後、SELECT * FROM XXX_TBLで内容を表示したところ、 以下のように表示されました。  NUM              NAME  ---------- ---------------                1  test NAMEはCHAR(5)で作成したにもかかわらず、---の 数が15もあります。 oracle9iでは、CHAR(5)の場合の---の数は5でした。 上記例では、2項目しかないためsql*plusで出力しても 気になりませんが、項目数を増やし、またカラムサイズを 大きくした場合に、見づらくなってしまいます。 何らかのパラメータの設定を変更すればよいのかと思い、 いろいろと調べて見ましたがわかりませんでした。 ご教授願います。

  • ORACLE のSQL について

    おはようございます。 ORACLEのSQLについて教えてください。 GROUP BY で抽出されたデータの レコード数を把握するSQLはどのようにすればよいのでようか。 ********************** 例: SQL: SELECT TEST_CD FROM TABLE GROUP BY TEST_CD 結果: 01 02 03 04 05 ********************** この結果のレコード(5レコード)のSQL式はどのようになりますか?

  • SELECTでの指定行からの指定行数文の取得

    こんにちは。 OracleでSELECT文、一発で指定行から指定行数分のデータを取得するように指定できるのでしょうか? 例) SELECT * from tbl01; で、100行取得できる状態で25行目から30行分取得する OracleのSQLリファレンスを調べたのですが該当するようなものは 見当たりませんでした。 よろしくお願いします。

  • 行番号を取得するには?

    SELECT文一回で行番号を取得したいのですが うまい方法が見つかりません、 もしよい案があれば教えてください。 SELECT 行番号,FIELD FROM TABLE_A やりたいことは 最終的にCASE文を使って 例えば5行目だけNULLにしたりしたいんです。