- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?)
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
このQ&Aのポイント
- ストアドファンクション(PL/pgSQL)において、テーブルt1を3回スキャンして変数d1、d2、d3に値をセットする方法についての質問です。1回のスキャンでセットする方法はあるのか、良い案があれば教えてください。
- 現在のコードでは、select文を3回使用してテーブルt1から最小値を取得し、変数d1、d2、d3に代入しています。しかし、1回のスキャンでセットする方法を探しています。
- 要件としては、select文を1回のスキャンで実行し、変数d1、d2、d3に値を代入する方法が求められています。良い案があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
select min(c1),min(c2),min(c3) into d1,d2,d3 from t1; でダメ?
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.3
select intoまで辿り着いているのだから、簡単に調べられると思うのですが。。。 select 式1,式2,式3 into 変数1,変数2,変数3 from 表名 のように、式と対応する変数を複数書きます。 なお、PostgreSQLでは、8.0前後くらいで構文に変更(into句の位置)があったと思います。質問にある使い方は、変更後の使い方です。
質問者
お礼
chukenkenkouさん ありがとうございました。 おかげさまで解決しました。 確かにご指摘の通りですね。 ただ自分なりには調べて見たのですが、 マニュアル等ではこの方法を読み取れませんでした。 すみませんでした。 ご丁寧な解説感謝します。
- Splatter
- ベストアンサー率41% (181/440)
回答No.1
カーソルを使用することはもう検討されましたか? http://www.bnote.net/mysql/appendix/cursors.shtml
質問者
お礼
すばやいアドバイスありがとうございます。 はい。カーソルを使えばできるだろうな。とは感じておりました。 できれば「カーソルを使わない方法」があれば教えてください。 最初の質問でこの事を記載すべきでした。 すみません。
お礼
ありがとうございました。 うまくいきました。 nora1962さんの構文を見てすぐ 「なるほど!」と思い 試してみた結果うまくいきました。 本当にありがとうござおました。 最後に返事が遅れてしまい申し訳ありませんでした。