本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
MySQLでは
DECLARE @myvar INT
SET @myvar = 5
SELECT *
FROM somewhere
WHERE something = @myvar
普通のSQL文の中で変数を利用する事が可能ですが、PostgreSQLでは単純にはできません。
仕方がないので PL/PGSQLを利用します。
tempテーブルを作成して実行結果確認
重みを変えるごとに、月をさかのぼるSQLです。
omomiを整数で変数宣言させます。
DO $$
DECLARE omomi integer;
BEGIN
omomi := 1;
DROP TABLE IF EXISTS temp;
CREATE TABLE temp AS
SELECT to_number(to_char(date_trunc('month', now()) - interval '1 month' * omomi,'YYYYMM'),'999999')::int as gatsudo,'テスト' as name;
END $$;
いったん、tempテーブルを吐き出す事で、SELECT文の結果を格納させて、値を確認できるようにします。
まとめ
変数を利用してゴリゴリにPL/Pgsqlを利用したレコード挿入文を作成するのですが、作成時に少しずつ値を検証したいときとっても不便でした。
とりあえず、この方法を利用すれば、いったんテーブルを見ないといけないという手間が発生しますが、全体的な完成は求めなくても、少しずつ実行させて値を表示させながら作り上げていく事が可能です。