ここから本文です

PostgreSQLを使用しています。SQLでこのような事ができるのかを知りたくて質問させ...

dra********さん

2017/11/208:22:51

PostgreSQLを使用しています。SQLでこのような事ができるのかを知りたくて質問させて頂きました。

変数AにSLECT文の結果を格納し、次の文のINSERT文で使用する。
例)
(変数A) = select c

ount(*) from table1;
insert into table1 values((変数A),1);

上記例であれば、サブクエリを使うとできると言うことは分かります。上記のような手法が使えるのかを知りたいです。

閲覧数:
39
回答数:
4

違反報告

ベストアンサーに選ばれた回答

tum********さん

2017/11/611:55:29

手続き言語(function)を使用すれば実現可能です。

Postgresでは標準でPL/pgSQL,PL/Python,PL/Perl,PL/Tclという手続き言語が用意されており、それを使用してDB上にプログラムを組み込むことが可能です。

純粋にSQLだけで実施する場合、一度temp tableにデータを入れる、withを使うなど、それに近いことはできても同じことはできません。

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

nor********さん

2017/11/321:41:44

とりあえず、情報提供までです。

https://www.postgresql.jp/document/9.1/html/sql-do.html

無名ブロック、匿名ブロックという機能です。
そう言えばORACLEにも似た機能がありました。

試したところではrubyの「pg」からは正常に実行できるようです。
ODBC接続では試していませんが。

jin********さん

2017/11/214:45:16

普通に考えたら

insert into table1 select count(*),1 from table1;

でしょうね。

プロフィール画像

カテゴリマスター

nob********さん

2017/11/210:13:28

PL/pgSQLを使えば技術的には可能ですが、RDBMS毎に仕様が大きく異なるのでお勧めは出来ません、SQLのみのinsert into table1 select ...で実現する方法を推奨します。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる