• 締切済み

取得するデータの数を制限

KaoruNagisaの回答

回答No.1

ROWNUM 擬似列を使うと、それなりのものがでます。 SELECT * FROM table_name WHERE ROWNUM < 10 ; これで 9行 抽出できます。 ただし、「最新のもの」というのは指定できませんが、以下のようには出来ます。 SELECT * FROM table_name WHERE UP_DATE >= TO_DATE('2001/07/10', 'YYYY/MM/DD') AND ROWNUM < 10 ;

関連するQ&A

  • WHERE句でのデータ型について

    お願い致します。 ORACLEのWHERE句に対する疑問点ですが、 カレンダを管理するテーブル(カレンダマスタ)において、条件を指定してデータをSELECTする時にWHERE句に記入するデータ型についてご指導お願いします。 <詳細> 目的としてカレンダマスタよりSYSDATEの年月の休みの日を除く、稼動日数(COUNT)を求めるのが、目的です。 自分で作成した、SQLでは目的を果たしているのですが、WHERE句にTO_CHARを使用し、抽出項目(年月日-DATE型)を指定しているのですが、条件を指定する時は、TO_CHARで指定しても問題は無いのでしょうか? <SQL> SELECT COUNT(TO_NUMBER(休みFLG)) AS 稼動日 FROM カレンダマスタ WHERE 年月日 BETWEEN (TO_DATE(LAST_DAY(ADD_MONTHS(SYSDATE,-1))+1,'YYYY/MM/DD')) AND (TO_CHAR(LAST_DAY(SYSDATE),'YYYY/MM/DD')) AND 休みFLG='0' <補足> 休みFLG='0'は稼動日

  • データがあれば○○なければのSQL

    基本的なことなのかもしれませんが・・・ AとBというテーブルがあり、あるタイミングでAを元にBを作成します。つまりBはデータがある場合とない場合があります。また、2つは関連番号で紐づいています。 Aテーブルを抽出したい時に、抽出条件は以下です。 ・Bテーブルのステータスが1であれば抽出 ・Bテーブルのステータスが0であれば非抽出 ・Bテーブルにデータがなければ抽出 INNER JOINだとデータがない時に抽出できないし、 WHERE句にCASE句を入れればいいのかなと思いましたが、テーブルにデータがあればなんて条件書けないしで詰まりました。 SELECTした結果に対して条件つけて抽出する手も思いつきましたが もっと美しいSQLがあれば教えてもらえないでしょうか。 環境はSQLServerです。よろしくお願いします。

  • なぜ、WHERE句とHAVING句があるのか?

    なぜ、WHERE句とHAVING句があるのか? SQLを学んでいる時に、疑問に思ったことがあります。 それは、「なぜ、WHERE句とHAVING句があるのか?」ということです。 この2つは、 ・WHERE句 → 表から取り出す行の条件を指定 ・GROUP BY句 → グループ化した結果から取り出す行の条件を指定 という違いがあることは分かっています。 ですが、おなじ「行のかたまりに対する抽出条件」を指定しているのに、 なぜ、わざわざ2つに分ける必要があったのでしょうか? 分けないと不都合が生じるのでしょうか。 もし、明瞭簡潔に説明できる方がいらっしゃいましたら、教えていただけないでしょうか。

  • 枝番の最大値とその前のデータを取得したい

    Oracle7で以下のような結果を得るにはどのようなSQLが あるでしょうか? 見積もりテーブル 見積NO 枝NO 件名 金額 0001 00  ああああ 10000 0002 00  いいいい 15000 0001 01  あああい 11000 0001 02  あああう 12000 0003 00  うううう 20000 0002 01  いいいう 16000 0002 02  いいいえ 17000 結果 見積NO 枝NO 件名 金額 0001 01  あああい 11000 0001 02  あああう 12000 0002 01  いいいう 16000 0002 02  いいいえ 17000 0003 00  うううう 20000 同一見積NOに変更した回数分枝NOがつくデータで、 最新とその一つ前のデータのみを抽出したいのです。 最新であれば副問い合わせでMAXを利用すればできそうですが、 その一つ前となると、やり方がわかりません。 また、データ量が多いので毎回MAXを副問い合わせしていると 検索に時間がかかりすぎる予感もするのですが・・・ よろしくお願いします。

  • 大量のデーターを条件により抽出して計算したり・・・

    こんにちわ。 エクセルで、毎月1万件以上をデーター入力し、条件により抽出したものを計算したり、印刷したり・・。 また、検索したりをしていこうと思っているのですが 将来的に、件数が10万件を越すかもしれません。 こういう場合、システムを作ってもらう事になるのでしょうか? データーベースはオラクルでフォームをエクセルとかで できるのでしょうか? システムとか、よくわかりませんので、 よろしくお願いします。

  • エクセル3つ以上のシートから共通項目を抽出

    至急でお願いします! エクセルの3つ以上のシートにまたがる膨大な量のデータから、 共通しているものを抽出したいです。 ネットで検索したところ、2つのシートから抽出する方法は見つけたのですが、 3つ以上だとやり方がわかりません! フィルタオプションの詳細設定で指定するかと思うのですが、 「検索条件範囲」で一つのシートしか指定できません。 ここで二つ以上のシートを指定するにはどうやればいいのでしょうか? ちなみにWindows7です。 エクセルあまり詳しくないので丁寧に教えて頂けるとありがたいです! よろしくお願いいたします。

  • なぜ、WHERE句とHAVING句があるのか?(質問文修正版)

    なぜ、WHERE句とHAVING句があるのか?(質問文修正版) SQLを学んでいる時に、疑問に思ったことがあります。 それは、「なぜ、WHERE句とHAVING句があるのか?」ということです。 この2つは、 ・WHERE句 → 表から取り出す行の条件を指定 ・HAVING句 → グループ化した結果から取り出す行の条件を指定 という違いがあることは分かっています。 ですが、おなじ「行のかたまりに対する抽出条件」を指定しているのに、 なぜ、わざわざ2つに分ける必要があったのでしょうか? 分けないと不都合が生じるのでしょうか。 もし、明瞭簡潔に説明できる方がいらっしゃいましたら、教えていただけないでしょうか。 ※本質問は、質問内容に質問の主旨が変わってしまう大きな誤りがあったため、いったん締め切り後、再掲載させていただきました。

  • グループ毎に条件指定で最新の行を取得

    グループ毎に条件指定で最新の行を取得 はじめまして。SQLクエリについてずっと頭を悩ましている問題がありまして、 識者の方に相談したく投稿します。 ID Revision -- -------- 01 1 01 2 01 3 02 1 03 1 上記のようなデータがあって、指定したRevision以下で 最新のデータのみを抽出することをViewで実現したいのですが、 可能でしょうか?(ViewにRevisionの条件を与えたいのです) 例えば、Revisionに2を指定した場合は select * from view_hoge where revision = 2 ID Revision -- -------- 01 2 02 1 03 1 となれば期待通りです。

  • データを取得するスピードはちがいますか?

    select文のwhere条件で記述する場合 Aというフィールドの上2桁が’02’で抽出するとき where mid(A,1,2) = '02' という方法と where A like "02*" と記述するのとどちらが実行スピードが速いですか? 処理件数は1万件ぐらいです。 ちなみに言語はVBでAC2003のMDBにアタッチして処理します。

  • 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に、●●が含まれるデータ)