- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの取得方法について)
SQLの取得方法とは?
このQ&Aのポイント
- SQLの取得方法を考えています。テーブルAのデータから条件に合致するデータを取得する方法は?
- テーブルAのデータからキー番号が小さい順で利用フラグが1のデータを最大3件まで取得する方法を教えてください。
- テーブルAのデータからキー番号が小さい順で利用フラグが1のデータを取得し、出力するテーブルBに整理する方法を教えてください。
- みんなの回答 (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も古いバージョンでは動かないので。
その他の回答 (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 のものだけ抽出されます。
質問者
補足
通常のSQLの形ですが、これだと縦もち=>横もち変換。キー番号の小さい順という辺りが上手くいきません。
お礼
上手く、動作確認する事ができました。 どうもありがとうございます。 バージョンの件は次回質問する事があった際はきをつけます。