- ベストアンサー
ORACLEで一番最初の結果だけを取る方法
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
select TABLE_NAME from all_tables where rownum<=1 でいかがですか? rownumはレコード数のことで、100行取りたいときは<=100と書きます。
関連する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で行う場合をご教授下さい。
- 締切済み
- その他(データベース)
- 表と表領域とデータファイルについて
よろしくお願いします。 表と表領域とデータファイルの関係を一発で導く方法を 教えてください。 今のところ、下記2つに分けているので、1つのSQLとしたいです。 データベースは、Oracle9i(9.2.0.8.0)です。 どうぞよろしくお願いします。 1. ------------------------------ SQL> select table_name, tablespace_name from all_all_tables 2 where table_name = 'SAMPLE' 3 ; ------------------------------ 2. ------------------------------ SQL> select tablespace_name, file_name from DBA_DATA_FILES 2 where tablespace_name = 'USERS' 3 ; ------------------------------
- ベストアンサー
- Oracle
- Oracle9i v$sysstatの解釈
Windows版 Oracle 9iで、下記のSQLを実行した値で質問なのですが・・・ <<SQL>> Select name, value from V$SYSSTAT where name like 'table%'; <<SQL結果>> NAME VALUE ---------------------------------------------------------------- ---------- table scans (short tables) 41298 table scans (long tables) 171 table scans (rowid ranges) 0 table scans (cache partitions) 0 table scans (direct read) 0 table scan rows gotten 151275758 table scan blocks gotten 11959596 table fetch by rowid 23079146 table fetch continued row 1048 table lookup prefetch client count 0 Webで検索すると、 Full Scan率は「table scans (long tables) / ( table scans (short tables)+table scans (long tables) )」とあったり、 「table fetch by rowid < table scan rows gotten」は頻繁にFull Scanしている状態とあって、「table scan rows gotten」がFull Scanの行数に思えるですが、実測した下記の値からは違うように思えるのですが、どのように解釈すれば良いのでしょうか? table scans (short tables) 41298 table scans (long tables) 171 ---- table scan rows gotten 151275758 table fetch by rowid 23079146
- ベストアンサー
- Oracle
- PL/SQLでFROM句に変数を使いたい
PL/SQL初心者なので方法があるかないかもわかりません。 SELECT TABLE_NAME FROM USER_TABLES で取得したテーブルを PQL文に使用したいのですが可能ですか? 一応動的(DBMS_SQLを使用した方法)にSQLを作成することはできたのですが パフォーマンスを考えると静的に使用したいのです。 動的、静的の表現でいいのかわかりませんが普通に PL/SQL中にSQL文を使いたいんですがいかがでしょうか?
- 締切済み
- その他(データベース)
- PL/SQLの基礎的な質問ですが・・
こんばんわ! PL/SQLの超初心者なのですが、以下ように「aaa」という変数に一つ目のselect文の結果を代入して、二つ目のselect文のテーブルにその名前を当てはめたいだけなのです。 DECLAER aaa VARCHAR2(30) BEGIN select max(TABLE_NAME) into aaa from ALL_TABLES Like '***'; select * from aaa END; ところが、結果は「表またはビューが存在しません」となります。 このような使い方はできないのでしょうか? どなたかご教示いただけませんでしょうか?宜しくお願いします。
- ベストアンサー
- Oracle
- ORACLEでwhere句の検索順序
Oracle9i windows2000です。 以下のようなテーブルがあります。 table_a ----------------------- id NUMBER(10,0) NOT NULL, sort NUMBER(10,0) NOT NULL, name VARCHAR(10), text VARCHAR(255) この条件で、以下のふたつのSELECT文を発行した時、パフォーマンスが良いのはどちらですか? Oracleでは後ろから検索されると聞いたことがあるのですが本当でしょうか? ※idにプライマリキー、 id,sortにインデックスが貼ってあります。 (1)SELECT text FROM table_a WHERE id = 1 AND sort = 2 AND name = 'a' (2)SELECT text FROM table_a WHERE name = 'a' AND sort = 2 AND id = 1
- ベストアンサー
- その他(データベース)
- オラクルでいうところのdescとspoolのサイベース版。
サイベース初心者です(オラクルも初級者ですが・・・)。 オラクルではdescで表の情報をみたり、処理結果をspool~spool off で出力したりしますが、これと同じ機能をサイベースでやりたいのですが、どうなりますか? また、オラクルでテーブル全てを表示したいとき、 select table_name from user_tables (だったかな?(--;)) というのがあるとおもいますが、これをサイベースでやるときは どう記述したらよいでしょうか。 以上、ひとつでもご存知の方、ご回答よろしくお願いします。
- ベストアンサー
- その他(データベース)
- まったく別のテーブルの結果MYSQL
table_1 id name age table_2 id book title city day SELECT * FROM table_1 WHERE id=? SELECT book,title FROM table_2 WHERE city=? このようにまったく別のテーブル カラム数も違う WHEREの?も違う これを一つのSQL文にまとめたいのですが。 UNIONなどを使ってもうまくいきませんでした。 ご教授お願いいたします。
- ベストアンサー
- MySQL
- 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に、●●が含まれるデータ)
- 締切済み
- Oracle
- もうちょっと賢いSELECT文が書けないものでしょうか
初めまして、最近SQLをかじり始めたぺーぺーです。 効率の悪いSELECT文しか書けずに困っています。 下記のテーブルsoftware_tableから、 ・name列「oracle」 ・version値が最大 のレコードに含まれるid(=3)を拾ってきたいのですが、自分の頭では副問い合わせを使う方法か、ソートを使う方法しか思いつきません。 問題は副問い合わせ・ソートを使うと計算コストが大きくなってしまうことで、できることなら副問い合わせ・ソートを使わずに解決したいのですが、何か方法はないものでしょうか? よろしくお願い致します。 ----------------------------- software_table id name version 1 oracle 1 2 oracle 2 3 oracle 3 4 postgres 1 5 postgres 2 6 postgres 3 7 postgres 4 ----------------------------- ■副問い合わせを使った方法 SELECT id FROM software_table WHERE name = 'oracle' AND version = (SELECT max(version) FROM software_table WHERE name = 'oracle'); ■ソートを使った例 SELECT id FROM software_table WHERE name = 'oracle' ORDER BY version DESC LIMIT 1 OFFSET 0; -----------------------------
- ベストアンサー
- PostgreSQL
お礼
できました。 ありがとうございました。 DBMSごとによって色々違いますから、新しいことを始める時はいつも苦労します。