こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

投稿日時 - 2006-12-25 16:27:12

QNo.2624660

困ってます

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

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。

投稿日時 - 2006-12-25 23:15:43

お礼

FudaKejiさん
回答ありがとうございます。
参考にさせて頂きます。

投稿日時 - 2006-12-27 10:53:10

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

rownum というものを使えばできませんか?

select *
  from employees
 where
   job_id = 'JOB001'
 and rownum <=10

先頭から10件検索するSQL

投稿日時 - 2006-12-25 16:35:58

お礼

akirinchanさん
回答ありがとうございます。
参考にさせて頂きます。

投稿日時 - 2006-12-27 10:52:47

あなたにオススメの質問