- - PR -
SQLの件数指定について
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-12-09 14:47
お世話になります。
SQLで件数指定を行う方法を探していたら、下記のページを見つけました。 http://www.thinkit.co.jp/free/marugoto/2/1/22/1.html そのページによれば、PostgreSQLの「OFFSET + LIMIT」と等価の機能を Oracleの「LINE BETWEEN」に変換できるという説明がされていました。 そこで分からないのがOracleの「LINE BETWEEN」の使い方です。 「LINE BETWEEN」の使い方をご存知の方おられましたら ご教授お願いできれば幸いです。 よろしくお願い致します。 以上 | ||||
|
投稿日時: 2005-12-09 15:21
こんにちは。
LINE BETWEEN・・・ 対象とするORACLEのバージョンが判らないですが 少なくとも10Gではそのような指定はできないです。 ORACLEの予約語集にも記載が無いですし、SQLリファレンスにも記載がありません。 また、10G以外でも、そのような指定が出来た記憶はありません。 | ||||
|
投稿日時: 2005-12-09 15:53
いつもお世話になります。いのきです。
私も「LINE BETWEEN」は聞いたことはありませんが、件数指定なら「ROWNUM BETWEEN」が使えるのではないでしょうか? 例) SELECT * FROM A WHERE ROWNUM BETWEEN 0 AND 3; | ||||
|
投稿日時: 2005-12-09 15:58
LINE BETWEENは聞いたことないですね
そのサイトのこのSQL文 文法エラーになりますね Oracleのアウタージョインの構文 SELECT B.商品名, SUM(A.数量) FROM 売上データA, 商品マスタB WHERE A.商品ID (+)= B.商品ID GROUP BY B.商品名; 空白がない・・・・ | ||||
|
投稿日時: 2005-12-09 16:41
いつもお世話になります。いのきです。
1点言うの忘れましたが、上記の例では「最初の1件目からXXX件目を取得」の場合、有効です。 例えば、「3件目から5件目を取得」したい場合は、 SELECT * FROM ( SELECT A.* , ROWNUM AS RN FROM A ) WHERE RN BETWEEN 3 AND 5; が使えると思います。 | ||||
|
投稿日時: 2005-12-09 20:17
「LINE BETWEEN」はガセネタなのでしょうか...?
| ||||
|
投稿日時: 2005-12-09 21:18
http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?communityid=otn-489965&bbsid=1&no=71702&view=9 ここの例でLINE BETWEENってありますが・・・ #Oracle9i?かな? _________________ #「やらない」と「出来ない」を混同してはならない | ||||
|
投稿日時: 2005-12-09 22:35
いえ、そこは単に「user_source」テーブルの「line」カラムを between 句で範囲指定しているだけです。 | ||||
