• ベストアンサー

ユニークなナンバーのデータの抜き出し(SQL)

すいません。 うまくいかないので、質問させていただきます。 ユニークなナンバーの振られたデータを100件だけ抜き出したい。 また、ナンバーの若い順にならんでるとは、限りません。 とりあえず、上から100件抜き出したいのです。 データは、以下のようになっています。 1 赤 3 黄 12 青 7 緑 ・ ・ 100 黒 105 白 100件を抜き出すSQLは、どのようにして考えたら良いでしょうか? 実際にSQLを教えて頂けたら、助かります。 よろしくお願い致します。

  • mkim
  • お礼率72% (161/221)

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

  • ベストアンサー
回答No.5

結果の行数を100件に抑制したいということなら、 set rowcount 100 select ほにゃらら とすれば100件だけの結果を取り出せます。set は接続レベルで 設定が持続するので、次のクエリを実行する前に set rowcount 0 を忘れないよう実行してください。

mkim
質問者

お礼

ご回答ありがとうございます。 set rowcountを使用すると、ビシッと成功しました。 接続レベルで設定が維持される事をわきまえて、 使いたいと思います。 ありがとうございました。

その他の回答 (5)

  • urk
  • ベストアンサー率33% (18/53)
回答No.6

Oracle8iでは 8iからの機能でROWNOができました。  select * from TABLE where ROWNO<101 で、とにかく100件でてきます。 sybaseはどうでしょうか?

mkim
質問者

お礼

ご回答ありがとうございます。 sybaseでは、「set rowcount」の指定を行う事で 成功致しました。 しかし、オラクル用やら、sybase用やら、統一して欲しい ですね(愚痴になってしまいますが。) これから、勉強する方は、大変ですぅ。 がんばりたいと思います。 ありがとうございました。

  • stork
  • ベストアンサー率34% (97/285)
回答No.4

>オラクルで言う所の疑似列を想定して100件抜き出した >いなぁ~って思いました。 >SELECT * FROM table_name WHERE ROWNUM <= 100 >ORDER BY id sybase使ったこと無いんですが、sybaseでしたらtopですかね。 select top 100 * from table_name order by id

mkim
質問者

お礼

ご回答ありがとうございます。 sybaseでは、topを指定すると、エラーでちゃいました^^;; どうやら、だめみたいです。 アドバイスして頂いた気持ちが嬉しかったです。 ありがとうございました。

  • Haizy
  • ベストアンサー率40% (404/988)
回答No.3

こんにちは。 多分、ナンバーは、ユニークでかつ連続番号ではないのですね。 データのテーブルを 「データ」として、ここに、「ナンバー」「カラー」のカラムがあるということで、よろしいでしょうか。 まず、順位をつけて、その順位に制限をかけてみましょうか。 |select a.順位,a.ナンバー,a.カラー |from( |  select( |    select count(*)+1 |    from データ |    where データ.カラー < s.カラー) 順位 , s.ナンバー, s.カラー |  from データ s))a |where 順位<=100 |oeder by 順位 つまり、データをデータ(S)と比較し、自分より小さい数をカウントしたものを+1したものが順位です。それをfrom句にいれて、サブクエリとしています。 こんな感じですか。 あ~~DBで、実際走らせていないので・・・・。(この辺が”自信なし”) 構文エラーとか、そん時は、ゴメンナサイ。 何かあったら補足ください。 でわでわ

mkim
質問者

お礼

ご回答ありがとございます。 set rowcount 100と言う指定でできました。 こちらも、色々な考え方があると思い、勉強になりました。 ありがとうございました。

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.2

>データは、以下のようになっています。 >1 赤 >3 黄 >12 青 >7 緑 ・ ・ >100 黒 >105 白 フィールド構成が分かりません。 idと色は同じフィールドですか? テーブル定義はどうなっているのですか? あと、 >とりあえず、上から100件抜き出したいのです。 DBに上からという概念はありませんよ。降順とか昇順とかで並び替えは できますが。

mkim
質問者

補足

すいません。質問の仕方が下手でした^^;; idと色は、別のフィールドです。 オラクルで言う所の疑似列を想定して100件抜き出したいなぁ~って思いました。 SELECT * FROM table_name WHERE ROWNUM <= 100 ORDER BY id こんな感じの事が、したいのです^^ ちなみに、DBには、sybaseを使用しています。 ですので、oracle固有のものが使えなくて、困っています。 よろしくお願いします。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

select * from table_name order by number LIMIT 0 OFFSET 100

mkim
質問者

お礼

ご回答ありがとうございます。 質問時に書き忘れていたのですが、DBにsybaseを使用しています。 LIMITか、OFFSETが、Oracle固有のものみたいで、失敗しました^^;; sybaseでも、使用できる形で何かあれば、アドバイスよろしくお願い致します。

関連するQ&A

  • 黒いナンバーって何?

    普通車は白ナンバー、軽は黄色ナンバー、タクシーとか運搬の営業は緑ナンバーなのは知ってるんですが、 黒ナンバーって何なんでしょうか?

  • 違うデータのみ表示

    違うデータのみ表示したいです。 A B 1  赤 2  青 3  青 4  黄 5  赤 6  緑 7  青 8  赤 のようなとき B列に重複するデータは表示しないように 赤 青 黄 緑 の4種類だけ表示したいです。 教えてください。

  • 日産 ラルゴ デッキ配線

    CDデッキを 付けたいと思ってます。 車側の配線色は 青2本 茶色1本 黒に赤ライン1本 黒に白ライン2本 黒に緑ライン1本 黄色1本 緑1本 赤に青ライン1本 オレンジ1本 デッキ側配線色 グレー1本 グレーに黒ライン1本 白1本 白に黒ライン1本 緑1本 緑に黒ライン1本 青1本 紫1本 紫黒ライン1本 赤1本 黄色1本 何色と何色を 繋げたらいいか 分かる方いたら 教えて頂きたいです お願いします

  • エクセルの関数での処理方法

    下記のようなデーターベースがあります  列 A   B   C  D   E    F 行  4/1 4/10 4/20 1   青  100 青 1100 青 11000 2  黄色  200 黄色 1200 黄色 12000 3 緑  300 緑 1300 緑 13000 4  赤  400 赤 1400 赤 14000 5  紫  500 紫 1500 紫 15000 6  黒  600 黒 1600 黒 16000 7  白  700 白 1700 白 17000 8  茶  800 茶 1800 茶 18000 9  水色  900 水色 1900 水色 19000 10 朱色 1000 朱色 2000 朱色 20000 上の図では分かりにくいかも知れませんが、 A列には上から4/1、青、黄・・・ B列には上から空白、100、200・・・  C列には上から4/10、青、黄・・・ D列には上から空白、1000、2000・・・  E列には上から4/20、青、黄・・・ F列には上から空白、10000、20000・・・と並んでます。 4/1の項目は4/9までの値段 4/10の項目は4/19までの値段 4/20の項目は4/30までの値段になります。 4/5、4/10/、4/15、4/25の白の値段を調べるにはどのようにすればいいでしょうか? 4/5、4/10、4/15、4/25のそれぞれに VLOOKUP関数の式を入れて調べるんではなく ひとつの式を入れて調べる日付のセルの値だけが 変わるだけで 全部同じ式で反映されるようにしたいんですが・・・ できますか? VOOLUP関数やIF関数を組み合わせてやってるんですが うまくいきません。 それともマクロでないとできないですか? よろしくお願いします。

  • 車のナンバーの色は種類??

    はじめまして、おはよう御座います。 車に乗っていて疑問に思ったんですが…。 車のナンバーに色が付いてますよね? 私が見たのは白・黄色・黒・濃い緑です。 黄色は確か軽自動車の意味だったような…?? この色の種類・意味、教えて頂けると嬉しいです。 よろしくお願い致します。

  • EXCEL:2項目で重複するデータを抽出したい

    EXCELで、A,B,C,D・・・とデータが続き、それぞれに重複する複数個のデータがあるときに、重複を省いて抽出することはできるのでしょうか?データ(行)が約5万件ほど合って、手作業では無理な状況です。どなたか、ぜひ教えて下さい! 例: A 青 A 青 A 白 B 赤 B 黄 B 黄 C 青 ↓ A 青 A 白 B 赤 B 黄 C 青

  • ROW_NUMBER BY PL/SQL

    こんばんは。 今PL/SQLで開発をしているのですが、PL/SQLでわからないことがあります。 日付のソート順に並べたデータの中から、何行目から何行目までのデータを取得、ということがしたくてROW_NUMBERを使ってSQL文を作成しました。 そのSQL文はきちんと動くのですが(データ取得できる)、それをPL/SQLにてカーソル宣言するとコンパイルエラーになってしまいます。 ROW_NUMBERの部分を削除するとコンパイルは通るので、原因はROW_NUMBERにあるようです。 しかしながら、ROW_NUMBERを使わずに、何行目から何行目までのデータ取得、ということが実装できるのか検討もつきません。 どうしてカーソルでROW_NUMBERが使えないのか? ROW_NUMBERのかわりのようなコマンド、もしくは実装方法が存在するのか? 不明な点は補足させていただきますので、ご教示の程宜しくお願い致します<(_ _)>

  • 自由研究(どの色が一番光を吸収するか)

    私は中学2年で、今自由研究をしています。その自由研究の内容はまず透明なプラスチックコップに黒、白、赤、緑、青、なにもはってないもの、の6つを用意し同じ量の水をいれ太陽の光がよくあたる場所(外)におきました。そして30分後と1時間後にそれぞれのコップの水の温度をはかりました。そしたらこんな結果になりました。        赤   青   黄  黒  白  なし 30分後  35,5  35,8  35  36,3 34,5 36 1時間後  35,8  36   35,5  37  35,2 36,2 こんな結果になりました。 この結果からは『白→黄→赤→青→なし→黒』 となりますが、一番黒が光を吸収し白が一番光を吸収しないとゆうことであってるのでしょうか? 『白→黄→赤→青→なし→黒』何故このような結果になったのでしょうか?色の濃さが関係しているんでしょうか。

  • カーオーディオの音量・配線について

    オーディオを交換したのですが音量がすごく小さくて困っています(スピーカーに耳を近づけてようやく聞こえる程度) 以前のオーディオでは正常に聞こえていたのでスピーカーは問題ないと思います ただ交換したオーディオが中古なのでこれが壊れている可能性もあるのですが それ以外に考えられる原因を教えて頂けますか? ちなみに配線を記載しておきます オーディオはケンウッドで14ピンのカプラー 緑・緑・橙・橙・0・赤・黄 ※赤:ACC 黄:バックアップACC 青・青・赤・赤・青・0・黒 ※黒:アース 青:アンテナコントロール ※上下左側4列はスピーカー ※0は穴はあるけど線が出ていない これらの線が下記の接続カプラーの線につながっています 9ピン:灰/黒・白/黒・0・青・・・・橙    :灰・・・・白・・・・・・・赤&青・青(*) *右下の青は隣の赤に戻っています(赤の場所から2本出ている) 5ピン:紫/黒・黄・緑/黒    :紫・・・・・・・緑 ※灰:フロントR 白:フロントL 紫:リアR 緑:リアL 電源が入り音は鳴っているので基本的な配線は間違っていないと思うのですが・・・ 配線以外に何か原因はありますか? よろしくお願いいたします

  • 運動会 あなたは何色に組分けをしたいですか。

    私は競輪のように、白・黒・赤・青・黄・緑・橙・桃・紫の 9 色に分けたいです。