• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オラクルSQLについて)

オラクルSQL初心者の困りごと

このQ&Aのポイント
  • オラクルSQLでテーブルCから日付順、番号順の優先順位で選択するためのSQLを作成したが、ステータスがRかPの場合を追加するのが難しい。
  • テーブルCは日付と番号の情報を持っており、ユニークなのは番号だけ。
  • どなたか、ステータスがRかPの場合を追加する方法について教えていただきたい。

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

  • ベストアンサー
  • Tiffa9900
  • ベストアンサー率31% (68/216)
回答No.2

ANo.1です。 > とりあえず上記は、厳密に言うと >     WHERE [番号]=前回編集した番号) > でしょうか? すみません。そうなります。 手元にOracleの実環境がないので机上のクエリになります。 Order By 句ももしかしたら()が不要かな? それと、 ROWNUM = 1 は、ROWNUM <= 1 が正しかったかもしれません。 ちなみに私の例は、見栄えの関係で全角スペースを入れてありますので、コピーしたままでは動かないと思います。 余談ですが、 「ROWNUM」はクエリの結果に対する内部的なシーケンシャルナンバーです。最終結果に対して振られる番号の為、私の知っている限り「ROWNUM > 5」等では機能しないです。この判定によって最終結果が再び変わるので機能しないのかな?と理解していますが。

gonchin01
質問者

お礼

ありがとうございました! 参考にしてできました。

その他の回答 (1)

  • Tiffa9900
  • ベストアンサー率31% (68/216)
回答No.1

RかPの場合っていうのは、 Rの場合のみとか、Pの場合のみとかってことかなぁ? SELECT * FROM テーブルC WHERE ROWNUM = 1  AND [ステータス] = 'R'  AND (TO_CHAR([日付],'yyyyMMdd') || [番号])   > (SELECT (TO_CHAR([日付],'yyyyMMdd') || [番号])     FROM テーブルC     WHERE [番号]=前回編集した番号)) ORDER BY (TO_CHAR([日付],'yyyyMMdd') || [番号]) だとシンプルかな。

gonchin01
質問者

お礼

Rの場合のみとか、Pの場合のみとかのことです。 ありがとうございます! シンプルになると嬉しいです。 上記試してみましたが、なかなか動きません・・・。     WHERE [番号]=前回編集した番号)) とりあえず上記は、厳密に言うと     WHERE [番号]=前回編集した番号) でしょうか?

関連するQ&A