- - PR -
FETCH LASTについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-19 16:59
いつもお世話になります。
早速ですが、SQLについて質問させて下さい。 データベースのテーブルから最初の10行を取りだそうとすると、以下のSQLになります。 SELECT * FROM TEBLE FETCH FIRST 10 ROWS ONLY では、最後の10行を取り出す時はどう書けばいいのでしょうか。 ちなみに、 SELECT * FROM TABLE FETCH LAST 10 ROWS ONLY ではSQLSTATE=42601のエラーになります。 どなたかご存知のかたご教授お願い致します。 | ||||||||
|
投稿日時: 2007-01-19 17:30
どらねこさん、書き込みありがとうございます。 上記サイト私も見てましたが、わかりませんでした。 ご指摘の SELECT * FROM TABLE FETCH LAST -10 ROWS ONLY でも実行してみましたが、 SQLSTATE=42601のエラーで10が無効と表示されました。 いまだ未解決です。 | ||||||||
|
投稿日時: 2007-01-19 17:44
すみません。間違ってたぽく元の書き込みは消させていただきました。 それでですが、-10にした場合、エラーで10が無効と表示されたみたいですが 元の SELECT * FROM TABLE FETCH LAST 10 ROWS ONLY の場合でも同じエラー内容でしょうか? | ||||||||
|
投稿日時: 2007-01-19 17:50
どらねこさん、お世話になります。
SELECT * FROM TABLE FETCH LAST 10 ROWS ONLY の場合のエラーは以下です。 SQL実行中に以下のエラーが発生しました。 エラーコード:-104 [IBM][CLI Driver][DB2/NT] SQL0104N "om db2admin.password" に続いて予期しないトークン "fetch" が見つかりました。入力が予想されるトークンには "JOIN <joined_table>" が含まれている可能性があります。 SQLSTATE=42601 どういうことなのか途方にくれています。 | ||||||||
|
投稿日時: 2007-01-19 18:52
order by [sorkey] desc で先頭十行を取得するのはどうでしょう。
| ||||||||
|
投稿日時: 2007-01-19 19:06
インギさん、いつもお世話になります。 ちなみに order by [sorkey] desc の [sorkey]には何をいれたらいいのでしょうか。 いろいろためしましたが、最後の10行がうまく表示されず、意図しない10行が表示されて しまいました。 | ||||||||
|
投稿日時: 2007-01-19 19:57
sorkey は sortkey のタイプミスでした。
ソート順を普段と逆にして先頭十行を取得すれば通常のソート順の最後の十行がとれるのではないかということです。 | ||||||||
|
投稿日時: 2007-01-21 21:32
行番号を付け、行番号で逆順にして先頭10行を取得すれば良いのではないでしょうか? 使用している RDBMS が何かは解りかねますが、 >SQLSTATE=42601 >エラーコード:-104 [IBM][CLI Driver][DB2/NT] ・・・ から判断して IBM DB2 だと仮定するとROW_NUMBER関数が使用できると思います。 また、テーブル行数があらかじめ解るのであればこのような方法もありますね。 http://db2forum.jp/viewtopic.php?t=247&sid=95c8e77d8e51267c43e6e165de20dff2 # 最低限どの RDBMS を使用しているか書いておかないと、回答してくれる方に対して無用な手間をかけさせてしまうと思うのですが・・・ |
1