• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの取得方法について)

SQLの取得方法とは?

このQ&Aのポイント
  • SQLの取得方法を考えています。テーブルAのデータから条件に合致するデータを取得する方法は?
  • テーブルAのデータからキー番号が小さい順で利用フラグが1のデータを最大3件まで取得する方法を教えてください。
  • テーブルAのデータからキー番号が小さい順で利用フラグが1のデータを取得し、出力するテーブルBに整理する方法を教えてください。

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

select max(case when rnum = 1 then キー番号 else null end) キー番号1 ,max(case when rnum = 1 then 内容 else null end) 内容1 ,max(case when rnum = 2 then キー番号 else null end) キー番号2 ,max(case when rnum = 2 then 内容 else null end) 内容2 ,max(case when rnum = 3 then キー番号 else null end) キー番号3 ,max(case when rnum = 3 then 内容 else null end) 内容3 from ( select キー番号,内容, row_number() over(order by キー番号) rnum from テーブルA where 利用フラグ = 1); みたいなことでしょうか? 質問の際にOracleのバージョンも書いたほうがいいですよ。 このSQLも古いバージョンでは動かないので。

evaag777
質問者

お礼

上手く、動作確認する事ができました。 どうもありがとうございます。 バージョンの件は次回質問する事があった際はきをつけます。

その他の回答 (2)

  • tissue001
  • ベストアンサー率21% (28/132)
回答No.2

No.1です。 補足ですが、利用フラグ = 1 が0件の場合は、もちろん該当レコードがないので、 1件も抽出されません。

  • tissue001
  • ベストアンサー率21% (28/132)
回答No.1

SELECT * FROM テーブルA WHERE 利用フラグ = 1 このセレクト文で 利用フラグ = 1 のものを抽出できます。 最大で3件が該当とのことですので、1件の時でも2件の時でも結果は、利用フラグ = 1 のものだけ抽出されます。

evaag777
質問者

補足

通常のSQLの形ですが、これだと縦もち=>横もち変換。キー番号の小さい順という辺りが上手くいきません。

関連するQ&A